Author: Maciej Fijalkowski <[email protected]>
Branch: jitframe-on-heap
Changeset: r62242:f5b6f4d291a6
Date: 2013-03-08 17:55 +0200
http://bitbucket.org/pypy/pypy/changeset/f5b6f4d291a6/
Log: I think this is what we want wrt keepalives
diff --git a/rpython/jit/backend/llgraph/runner.py
b/rpython/jit/backend/llgraph/runner.py
--- a/rpython/jit/backend/llgraph/runner.py
+++ b/rpython/jit/backend/llgraph/runner.py
@@ -22,7 +22,6 @@
# We need to clone the list of operations because the
# front-end will mutate them under our feet again. We also
# need to make sure things get freed.
- self.alldescrs = []
def mapping(box, _cache={}):
if isinstance(box, Const) or box is None:
return box
@@ -36,9 +35,10 @@
self.operations = []
for op in operations:
if op.getdescr() is not None:
- # XXX is this hack needed any more?
- self.alldescrs.append(op.getdescr())
- newdescr = WeakrefDescr(op.getdescr())
+ if op.is_guard():
+ newdescr = op.getdescr()
+ else:
+ newdescr = WeakrefDescr(op.getdescr())
else:
newdescr = None
newop = op.copy_and_change(op.getopnum(),
@@ -939,7 +939,7 @@
def _getdescr(op):
d = op.getdescr()
- if d is not None:
+ if d is not None and isinstance(d, WeakrefDescr):
d = d.realdescrref()
assert d is not None, "the descr disappeared: %r" % (op,)
return d
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit