Author: Maciej Fijalkowski <[email protected]>
Branch: kill-gen-store-back-in
Changeset: r64512:e521b3b40fe5
Date: 2013-05-23 14:08 +0200
http://bitbucket.org/pypy/pypy/changeset/e521b3b40fe5/
Log: if we're in the middle of handle-async-forcing then we cannot really
have a virtualizable in an odd state - it should be normal
diff --git a/rpython/jit/metainterp/pyjitpl.py
b/rpython/jit/metainterp/pyjitpl.py
--- a/rpython/jit/metainterp/pyjitpl.py
+++ b/rpython/jit/metainterp/pyjitpl.py
@@ -1068,8 +1068,8 @@
# xxx hack
if not self.metainterp.heapcache.is_class_known(exc_value_box):
clsbox = self.cls_of_box(exc_value_box)
- self.generate_guard(rop.GUARD_CLASS, exc_value_box, [clsbox],
- resumepc=orgpc)
+ self.metainterp.generate_guard(rop.GUARD_CLASS, exc_value_box,
+ [clsbox], resumepc=orgpc)
self.metainterp.class_of_last_exc_is_const = True
self.metainterp.last_exc_value_box = exc_value_box
self.metainterp.popframe()
diff --git a/rpython/jit/metainterp/resume.py b/rpython/jit/metainterp/resume.py
--- a/rpython/jit/metainterp/resume.py
+++ b/rpython/jit/metainterp/resume.py
@@ -1218,8 +1218,7 @@
virtualizable = self.decode_ref(numb.nums[index])
if self.resume_after_guard_not_forced == 1:
# in the middle of handle_async_forcing()
- if not vinfo.is_token_nonnull_gcref(virtualizable):
- raise AlreadyForced
+ assert vinfo.is_token_nonnull_gcref(virtualizable)
vinfo.reset_token_gcref(virtualizable)
else:
# just jumped away from assembler (case 4 in the comment in
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit