Author: Armin Rigo <ar...@tunes.org>
Branch: continulet-pickle
Changeset: r47288:4139c7f2d817
Date: 2011-09-16 12:46 +0200
http://bitbucket.org/pypy/pypy/changeset/4139c7f2d817/

Log:    Translation fix.

diff --git a/pypy/module/_continuation/interp_pickle.py 
b/pypy/module/_continuation/interp_pickle.py
--- a/pypy/module/_continuation/interp_pickle.py
+++ b/pypy/module/_continuation/interp_pickle.py
@@ -1,10 +1,11 @@
 from pypy.tool import stdlib_opcode as pythonopcode
 from pypy.rlib import jit
+from pypy.interpreter.error import OperationError
 from pypy.interpreter.pyframe import PyFrame
 from pypy.module._continuation.interp_continuation import State, global_state
 from pypy.module._continuation.interp_continuation import build_sthread
 from pypy.module._continuation.interp_continuation import post_switch
-from pypy.module._continuation.interp_continuation import get_result
+from pypy.module._continuation.interp_continuation import get_result, geterror
 
 
 def getunpickle(space):
@@ -33,10 +34,10 @@
     return space.newtuple(args)
 
 def setstate(self, w_args):
+    space = self.space
     if self.sthread is not None:
         raise geterror(space, "continulet.__setstate__() on an already-"
                               "initialized continulet")
-    space = self.space
     w_frame, w_dict = space.fixedview(w_args, expected_length=2)
     if not space.is_w(w_dict, space.w_None):
         self.setdict(space, w_dict)
@@ -68,8 +69,9 @@
             try:
                 w_result = post_switch(sthread, h)
                 operr = None
-            except OperationError, operr:
-                pass
+            except OperationError, e:
+                w_result = None
+                operr = e
             #
             while True:
                 ec = sthread.ec
@@ -86,8 +88,9 @@
                 try:
                     w_result = frame.execute_frame(w_result, operr)
                     operr = None
-                except OperationError, operr:
-                    pass
+                except OperationError, e:
+                    w_result = None
+                    operr = e
                 if exit_continulet is not None:
                     self = exit_continulet
                     break
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to