correctly handle multiple registrations of the same snipclass name
svn: r15692
This commit is contained in:
parent
a090aa60a9
commit
3170f05da2
|
@ -1238,10 +1238,14 @@
|
||||||
|
|
||||||
(def/public (add [snip-class% c])
|
(def/public (add [snip-class% c])
|
||||||
(let ([name (send c get-classname)])
|
(let ([name (send c get-classname)])
|
||||||
(hash-set! ht name c)
|
(let ([old (hash-ref ht name #f)])
|
||||||
(let ([n (hash-count pos-ht)])
|
(hash-set! ht name c)
|
||||||
(hash-set! pos-ht c n)
|
(let ([n (if old
|
||||||
(hash-set! rev-pos-ht n c))))
|
(hash-ref pos-ht old)
|
||||||
|
(hash-count pos-ht))])
|
||||||
|
(when old (hash-remove! pos-ht old))
|
||||||
|
(hash-set! pos-ht c n)
|
||||||
|
(hash-set! rev-pos-ht n c)))))
|
||||||
|
|
||||||
(def/public (number) (hash-count ht))
|
(def/public (number) (hash-count ht))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user