[Pharo-dev] Fwd: Consequence of NBExternalStructure refactorings

Igor Stasenko siguctua at gmail.com
Fri Aug 9 11:18:35 EDT 2013


lately we changed the object format of subject class from variableByte
to normal one.

All projects which using NBExternalStructure can meet certain problems with it,
and first which comes is that it may load code cleanly but in fact
result in bogus
variable subclasses of NBExternalStructure , while it can't because
superclass has instance variable.
(i suspecting classbuilder bug, but need to verify first).

To address that, you need to manually go over all subclasses and double-check.

Another thing: since now instances NBExternalStructure can also point
to external memory,
special care should be taken for #copying.
Sending #copy to instance which uses external memory, will create a
copy on object memory
(and copy all data from external memory into it). This is same
behavior as in NBExternalArray.

- there is a bugs in #initialize and #postCopy (fixed but not intergated yet)
will do that in nearest time.

also note, that in callouts, you cannot pass an instance of
NBExternalStructure anymore
to function, which uses raw pointer (like void*) anymore.

For passing a pointer to structure data for callouts, use
myStructure address
idiom (or use right struct type, which is preferable).

Best regards,
Igor Stasenko.

More information about the Pharo-dev mailing list