Author: Armin Rigo <[email protected]>
Branch:
Changeset: r54887:b7558f5630d6
Date: 2012-05-03 17:08 +0200
http://bitbucket.org/pypy/pypy/changeset/b7558f5630d6/
Log: Remove the distinction between handle() and really_handle(), which
was there with the comment "JIT hack" dating back to the old JIT in
2007.
diff --git a/pypy/interpreter/pyopcode.py b/pypy/interpreter/pyopcode.py
--- a/pypy/interpreter/pyopcode.py
+++ b/pypy/interpreter/pyopcode.py
@@ -1290,10 +1290,6 @@
w(self.valuestackdepth)])
def handle(self, frame, unroller):
- next_instr = self.really_handle(frame, unroller) # JIT hack
- return r_uint(next_instr)
-
- def really_handle(self, frame, unroller):
""" Purely abstract method
"""
raise NotImplementedError
@@ -1305,17 +1301,17 @@
_opname = 'SETUP_LOOP'
handling_mask = SBreakLoop.kind | SContinueLoop.kind
- def really_handle(self, frame, unroller):
+ def handle(self, frame, unroller):
if isinstance(unroller, SContinueLoop):
# re-push the loop block without cleaning up the value stack,
# and jump to the beginning of the loop, stored in the
# exception's argument
frame.append_block(self)
- return unroller.jump_to
+ return r_uint(unroller.jump_to)
else:
# jump to the end of the loop
self.cleanupstack(frame)
- return self.handlerposition
+ return r_uint(self.handlerposition)
class ExceptBlock(FrameBlock):
@@ -1325,7 +1321,7 @@
_opname = 'SETUP_EXCEPT'
handling_mask = SApplicationException.kind
- def really_handle(self, frame, unroller):
+ def handle(self, frame, unroller):
# push the exception to the value stack for inspection by the
# exception handler (the code after the except:)
self.cleanupstack(frame)
@@ -1340,7 +1336,7 @@
frame.pushvalue(operationerr.get_w_value(frame.space))
frame.pushvalue(operationerr.w_type)
frame.last_exception = operationerr
- return self.handlerposition # jump to the handler
+ return r_uint(self.handlerposition) # jump to the handler
class FinallyBlock(FrameBlock):
@@ -1361,7 +1357,7 @@
frame.pushvalue(frame.space.w_None)
frame.pushvalue(frame.space.w_None)
- def really_handle(self, frame, unroller):
+ def handle(self, frame, unroller):
# any abnormal reason for unrolling a finally: triggers the end of
# the block unrolling and the entering the finally: handler.
# see comments in cleanup().
@@ -1369,18 +1365,18 @@
frame.pushvalue(frame.space.wrap(unroller))
frame.pushvalue(frame.space.w_None)
frame.pushvalue(frame.space.w_None)
- return self.handlerposition # jump to the handler
+ return r_uint(self.handlerposition) # jump to the handler
class WithBlock(FinallyBlock):
_immutable_ = True
- def really_handle(self, frame, unroller):
+ def handle(self, frame, unroller):
if (frame.space.full_exceptions and
isinstance(unroller, SApplicationException)):
unroller.operr.normalize_exception(frame.space)
- return FinallyBlock.really_handle(self, frame, unroller)
+ return FinallyBlock.handle(self, frame, unroller)
block_classes = {'SETUP_LOOP': LoopBlock,
'SETUP_EXCEPT': ExceptBlock,
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit