[pypy-svn] r63995 - pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp
fijal at codespeak.net
fijal at codespeak.net
Sun Apr 12 22:05:10 CEST 2009
Author: fijal
Date: Sun Apr 12 22:05:09 2009
New Revision: 63995
Modified:
pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/pyjitpl.py
Log:
a super-paranoia of checking if saved env matches
Modified: pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/pyjitpl.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/pyjitpl.py (original)
+++ pypy/branch/pyjitpl5-simplify/pypy/jit/metainterp/pyjitpl.py Sun Apr 12 22:05:09 2009
@@ -921,13 +921,17 @@
# boxes.
log('recursive call to execute_operations()!')
saved_env = []
+ framestack = []
for f in self.framestack:
newenv = []
for box in f.env:
if isinstance(box, Box):
saved_env.append(box.clonebox())
+ newenv.append(box)
+ framestack.append(newenv)
pseudoframe = instantiate(MIFrame)
pseudoframe.env = saved_env
+ pseudoframe._saved_framestack = framestack
self.framestack.append(pseudoframe)
def _restore_recursive_call(self):
@@ -938,8 +942,13 @@
pseudoframe = self.framestack.pop()
saved_env = pseudoframe.env
i = 0
- for f in self.framestack:
- for box in f.env:
+ assert len(pseudoframe._saved_framestack) == len(self.framestack)
+ for j in range(len(self.framestack)):
+ f = self.framestack[j]
+ assert len(f.env) == len(pseudoframe._saved_framestack[j])
+ for k in range(len(f.env)):
+ box = f.env[k]
+ pseudoenv = pseudoframe._saved_framestack[j]
if isinstance(box, BoxInt):
box.changevalue_int(saved_env[i].getint())
i += 1
@@ -947,6 +956,10 @@
box.changevalue_ptr(saved_env[i].getptr_base())
i += 1
else:
+ if isinstance(box, ConstInt):
+ assert box.getint() == pseudoenv[k].getint()
+ elif isinstance(box, ConstPtr):
+ assert box.getptr_base() == pseudoenv[k].getptr_base()
assert isinstance(box, Const)
assert i == len(saved_env)
More information about the Pypy-commit
mailing list