Author: Armin Rigo <[email protected]>
Branch: continulet-pickle
Changeset: r47277:4f008a29d7ff
Date: 2011-09-14 20:58 +0200
http://bitbucket.org/pypy/pypy/changeset/4f008a29d7ff/
Log: Fix.
diff --git a/pypy/module/_continuation/interp_continuation.py
b/pypy/module/_continuation/interp_continuation.py
--- a/pypy/module/_continuation/interp_continuation.py
+++ b/pypy/module/_continuation/interp_continuation.py
@@ -276,8 +276,7 @@
while True:
ec = self.sthread.ec
frame = ec.topframeref()
- if frame.pycode is get_entrypoint_pycode(space):
- break
+ last_level = frame.pycode is get_entrypoint_pycode(space)
#
code = frame.pycode.co_code
instr = frame.last_instr
@@ -309,6 +308,8 @@
operr = None
except OperationError, operr:
pass
+ if last_level:
+ break
if operr:
raise operr
except Exception, e:
diff --git a/pypy/module/_continuation/test/test_zpickle.py
b/pypy/module/_continuation/test/test_zpickle.py
--- a/pypy/module/_continuation/test/test_zpickle.py
+++ b/pypy/module/_continuation/test/test_zpickle.py
@@ -21,8 +21,14 @@
lst = []
co = continulet(lst.append)
co2, lst2 = copy.deepcopy((co, lst))
+ #
+ assert lst == []
+ co.switch()
+ assert lst == [co]
+ #
assert lst2 == []
- xxx
+ co2.switch()
+ assert lst2 == [co2]
def test_copy_continulet_real(self):
import new, sys
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit