1.1 --- a/rsvp.py Sat Jun 12 01:07:13 2010 +0200
1.2 +++ b/rsvp.py Sat Jun 12 01:42:22 2010 +0200
1.3 @@ -449,7 +449,8 @@
1.4
1.5 def MakeFragment(self):
1.6 size = self.operand
1.7 - addr = self._MakeFragment(size)
1.8 + # Reserve twice the amount of space.
1.9 + addr = self._MakeFragment(size, size * 2)
1.10 # NOTE: Context is not relevant for fragments.
1.11 self.value = DataValue(None, addr)
1.12
1.13 @@ -806,11 +807,10 @@
1.14 self.save(addr, data.with_size(size))
1.15 return addr
1.16
1.17 - def _MakeFragment(self, size):
1.18 - # Reserve twice the amount of space.
1.19 - addr = self.new(size * 2)
1.20 + def _MakeFragment(self, occupied, size):
1.21 + addr = self.new(size)
1.22 # Save the header, overriding the size.
1.23 - self.save(addr, FragmentObject(size, size * 2))
1.24 + self.save(addr, FragmentObject(occupied, size))
1.25 return addr
1.26
1.27 def _LoadAddressContextCond(self, context, ref, inst_ref):