1.1 --- a/rsvplib.py Sun May 08 20:31:23 2011 +0200
1.2 +++ b/rsvplib.py Sun May 08 22:15:28 2011 +0200
1.3 @@ -483,7 +483,7 @@
1.4
1.5 index = self.machine.load(name_value.ref + self.instance_data_offset + 1)
1.6
1.7 - # NOTE: This is very much like LoadAttrIndex.
1.8 + # NOTE: This is very much like LoadAttrIndexContextCond.
1.9
1.10 data = self.machine.load(obj_value.ref)
1.11 element = self.machine.objlist[data.classcode + index]
1.12 @@ -492,7 +492,11 @@
1.13 attr_index, static_attr, offset = element
1.14 if attr_index == index:
1.15 if static_attr:
1.16 - self.machine.result = self.machine.load(offset) # offset is address of class/module attribute
1.17 + loaded_value = self.machine.load(offset) # offset is address of class/module attribute
1.18 + if data.attrcode is None: # absent attrcode == class/module
1.19 + self.machine.result = loaded_value
1.20 + else:
1.21 + self.machine.result = self.machine._LoadAddressContextCond(loaded_value.context, loaded_value.ref, obj_value.ref)
1.22 else:
1.23 self.machine.result = self.machine.load(obj_value.ref + offset)
1.24 return