What am I not understanding about FullBlockClosure?

I have a clean block that I'd like to turn into a FullBlockClosure so that I
can serialize it without dragging (unneeded methods) into my object graph.
However, documentation and in-image example usages seem severely limited.
Here was one experiment that ended with a primitive failure. It seems like a
receiver is needed and it can't be a dummy value (see commented "receiver:
1"). But what would the receiver be in the absence of an outer context?!

aBlockClosure := [ :a :b  | 1 + a + b ].
fbc := (FullBlockClosure
                outerContext: nil
                startpc: aBlockClosure startpc
                numArgs: aBlockClosure argumentCount
                copiedValues: Array new) "receiver: 1; yourself".

fbc value: 2 value: 3. "PrimitiveFailed: primitive #value:value: in
FullBlockClosure failed"



-----
Cheers,
Sean
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html

Reply via email to