1.1 --- a/rsvp.py Mon May 18 23:56:12 2009 +0200
1.2 +++ b/rsvp.py Fri May 22 00:17:35 2009 +0200
1.3 @@ -474,7 +474,7 @@
1.4 def LoadCallable(self):
1.5 context, ref = self.value
1.6 data = self.load(ref)
1.7 - self.callable = data.codeaddr, data.codedetails
1.8 + self.callable = data.codeaddr
1.9
1.10 def StoreCallable(self):
1.11 context, ref = self.value
1.12 @@ -499,6 +499,9 @@
1.13 nlocals = len(self.frame_stack[frame:])
1.14
1.15 # Support sliding of the frame to exclude any inappropriate context.
1.16 + # Since a context will always be present when this instruction is being
1.17 + # used (whether or not it is desired), we can always test the nature of
1.18 + # the context.
1.19
1.20 if context_ref is None:
1.21 self.local_sp_stack[-1] += 1
1.22 @@ -509,6 +512,8 @@
1.23 self.local_sp_stack[-1] += 1
1.24 nlocals -= 1
1.25
1.26 + # NOTE: Should check the context here.
1.27 +
1.28 # Test the frame size.
1.29 # NOTE: Raise a proper exception here.
1.30
1.31 @@ -547,7 +552,7 @@
1.32 self.status = self._CheckInstance(ref, target_context)
1.33
1.34 def JumpWithFrame(self):
1.35 - codeaddr, codedetails = self.callable
1.36 + codeaddr = self.callable
1.37 self.local_sp_stack.append(self.invocation_sp_stack[-1]) # adopt the invocation frame
1.38 return self.jump(codeaddr, self.pc + 1) # return to the instruction after this one
1.39