The real problem is that the error that was raised on on:do: was removed and now... NewValueHolder>>whenChangedDo: aBlock | block | block := [:announcement :ann | aBlock cull: announcement newContents cull: announcement oldContents cull: announcement cull: ann ]. announcer weak on: ValueChanged do: block Now may be it is not a problem and a strong reference is ok too. We will have to analyse that. Stef
So igor is thinking about ephemerons and object formats. Because we are going over all the weak on:do: and rewriting the ones we can.
whenListChanged: aBlock "Specify a block to value after the contents of the list has changed"
"Basically when you set a new list of items"
<api: #event> | block | block := [ :announcement :ann | aBlock cull: announcement newContents cull: announcement oldContents cull: announcement cull: ann ]. listAnnouncer weak on: ValueChanged do: block
On Aug 4, 2013, at 4:16 PM, Stéphane Ducasse <Stephane.Ducasse@inria.fr> wrote:
addDependent: anObject
self announcer on: MorphChanged do: [ :ann | anObject update: ann selector ].
self announcer on: MorphChangedWithArguments do: [ :ann | anObject update: ann selector with: ann arguments ].
^ anObject
is an example of the problem because addDependent: was holding also weakly its dependent and now we cannot use weak with blocks.
Stef