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
Magnitude weakSubclass: #WeakKeyAssociation instanceVariableNames: 'value' classVariableNames: '' category: 'Collections-Support' weakSubclass: ... On 06 Sep 2014, at 16:47, Ben Coman <btc@openInWorld.com> wrote:
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
participants (2)
-
Ben Coman -
Sven Van Caekenberghe