WeakIdentityDictionary.st
changeset 1263 92c1db6b0776
parent 1256 249fd57abee5
child 1290 15ba3221b89b
equal deleted inserted replaced
1262:89e577d85251 1263:92c1db6b0776
    33 "
    33 "
    34 !
    34 !
    35 
    35 
    36 documentation
    36 documentation
    37 "
    37 "
    38     this is a special class to support keeping track of dependents without
    38     WeakIdentityDictionaries behave like IdentityDictionaries, 
       
    39     as long as the contained objects are still referenced by some 
       
    40     other (non-weak) object.
       
    41     However, once the last non-weak reference ceases to exist,
       
    42     the object will be automatically removed from the Weakcollection
       
    43     (with some delay: it will be removed after the next garbage collect).
       
    44 
       
    45     This class was added to support keeping track of dependents without
    39     keeping the values alive - values simply become nil when no one else
    46     keeping the values alive - values simply become nil when no one else
    40     references it. The original dependency mechanism used a regular Dictionary,
    47     references it. The original dependency mechanism used a regular Dictionary,
    41     which usually leads to a lot of garbage being kept due to a forgotten
    48     which usually leads to a lot of garbage being kept due to a forgotten
    42     release. Using a WeakDictionary may be incompatible to ST-80 but is much
    49     release. Using a WeakDictionary may be incompatible to ST-80 but is much
    43     more comfortable, since no manual release of dependents is needed.
    50     more comfortable, since no manual release of dependents is needed.
       
    51 
       
    52     [See also:]
       
    53         WeakArray WeakIdentitySet
    44 "
    54 "
    45 ! !
    55 ! !
    46 
    56 
    47 !WeakIdentityDictionary methodsFor:'adding & removing'!
    57 !WeakIdentityDictionary methodsFor:'adding & removing'!
    48 
    58 
   149 ! !
   159 ! !
   150 
   160 
   151 !WeakIdentityDictionary class methodsFor:'documentation'!
   161 !WeakIdentityDictionary class methodsFor:'documentation'!
   152 
   162 
   153 version
   163 version
   154     ^ '$Header: /cvs/stx/stx/libbasic/WeakIdentityDictionary.st,v 1.16 1996-04-22 15:40:37 cg Exp $'
   164     ^ '$Header: /cvs/stx/stx/libbasic/WeakIdentityDictionary.st,v 1.17 1996-04-23 11:56:31 cg Exp $'
   155 ! !
   165 ! !