I've looked at implementation of cleanCopy. It removes sender, but my problem is with receiver.
However I wrote similar set of methods that also set receiver to nil. Seems to work fine, in debugger such blocks are seen as defined in DoIt. On 29.12.2015 3:42, Mariano Martinez Peck [via Smalltalk] wrote: > This is halt related, but you can see how Fuel checks wether the closure > is "clean" and if true, it serializes a pruned version of it so that to > avoid a whole stack. See BlockClosure >> fuelAccept: > > fuelAccept: aGeneralMapper > > ^ self *shouldBeSubstitutedByCleanCopy* > "The 'onRecursionDo:' is just to avoid an infinitive loop for the > substitution. The cleanCopy MUST be a clean copy so it can be serialized > normally" > ifTrue: [ aGeneralMapper visitSubstitution: self by: *self cleanCopy > *onRecursionDo: [ aGeneralMapper visitVariableObject: self ] ] > ifFalse: [ aGeneralMapper visitVariableObject: self ] -- View this message in context: http://forum.world.st/Blocks-that-don-t-leak-memory-tp4868529p4868838.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.