I'd like to learn a bit more about the implementation of Weak objects. For example, I see...

Magnitude>LookupKey>Associaton >> key: aKey value: anObject
   key := aKey.
   value := anObject

Magnitude>LookupKey>WeakValueAssociaton >> key: aKey value: anObject
   key := aKey.
   self value: anObject
Magnitude>LookupKey>WeakValueAssociaton >> value: anObject
   self at: 1 put: anObject

Magnitude>WeakKeyAssociation >> key: aKey value: anObject
   self basicAt: 1 put: aKey.
   value := anObject

The class definitions don't look any different to normal? I can see that the weak classes are doing an #at:put: for their respective weak attribute, but lots of non-weak classes also use that.
So what is it that makes   WeakValueAssociaton & WeakKeyAssociation   weak ?

cheers -ben

Reply via email to