
Hi Marcus, Your answer is as I suspected. The suggestion to add an instance variable, forcing a recompile, from Andrew P Black, seems to resolve the problem.. There still remains the question of how the system allowed the situation to arise in the first place tho.. Thanks for the help. KR Graham Marcus Denker wrote:
On Jun 25, 2012, at 1:22 AM, Graham McLeod wrote:
Here is an example:
Class definition: Thing subclass: #Relationship instanceVariableNames: 'context fromNode properties relType toNode' classVariableNames: '' poolDictionaries: '' category: 'Sapiento'
Source Code: relType: anObject relType := anObject Byte Codes: 13<10> pushTemp: 0 14<62> popIntoRcvr: 2 15<78> returnSelf Decompiled Code: relType: anObject properties := anObject
NOTE: properties is updated instead of relType.
It seems that the method has not been recompiled correctly when you added instance variables.
The decompiled code and the bytecode are in sync: 14<62> popIntoRcvr: 2 is storing into the properties instance variable, and the decompiled code shows it correctly. But the bytecode should have been regenerated and do 14<62> popIntoRcvr: 3
So the bug is definitly related to not recompiling the methods after the shape of the class was changed.
Marcus
-- Marcus Denker -- http://marcusdenker.de