1.1 --- a/rsvp.py Thu Jan 13 23:58:12 2011 +0100
1.2 +++ b/rsvp.py Sat Jan 29 21:07:27 2011 +0100
1.3 @@ -5,7 +5,7 @@
1.4 ignore low-level operations and merely concentrate on variable access, structure
1.5 access, structure allocation and function invocations.
1.6
1.7 -Copyright (C) 2007, 2008, 2009, 2010 Paul Boddie <paul@boddie.org.uk>
1.8 +Copyright (C) 2007, 2008, 2009, 2010, 2011 Paul Boddie <paul@boddie.org.uk>
1.9
1.10 This program is free software; you can redistribute it and/or modify it under
1.11 the terms of the GNU General Public License as published by the Free Software
1.12 @@ -455,7 +455,7 @@
1.13 size = self.operand
1.14 value = self.value
1.15 # NOTE: Referencing the instance template.
1.16 - addr = self._MakeObject(size, value.ref - 1)
1.17 + addr = self._MakeObject(size, value.ref - 2)
1.18 # Introduce object as context for the new object.
1.19 self.value = DataValue(addr, addr)
1.20
1.21 @@ -817,6 +817,9 @@
1.22 addr = self.new(size)
1.23 # Save the header, overriding the size.
1.24 self.save(addr, data.with_size(size))
1.25 + # Copy the __class__ attribute.
1.26 + cls_attr = self.load(ref + 1)
1.27 + self.save(addr + 1, cls_attr)
1.28 return addr
1.29
1.30 def _MakeFragment(self, occupied, size):