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