Author: fijal
Branch: compress-numbering
Changeset: r80932:5c758bb1b755
Date: 2015-11-25 11:55 +0200
http://bitbucket.org/pypy/pypy/changeset/5c758bb1b755/
Log: fix virtualrefs
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
@@ -1161,7 +1161,12 @@
# Returns a list of boxes, assumed to be all BoxPtrs.
# We leave up to the caller to call vrefinfo.continue_tracing().
assert (end & 1) == 0
- return [self.decode_ref(numb.nums[i]) for i in range(end)]
+ lst = []
+ for i in range(end):
+ item, self.cur_index = resumecode.numb_next_item(self.numb,
+ self.cur_index)
+ lst.append(self.decode_ref(item))
+ return lst
def consume_vref_and_vable_boxes(self, vinfo, ginfo):
first_snapshot_size = rffi.cast(lltype.Signed,
@@ -1179,6 +1184,7 @@
virtualizable_boxes = None
end = first_snapshot_size
virtualref_boxes = self.consume_virtualref_boxes(end)
+ self.cur_index = rffi.cast(lltype.Signed,
self.numb.first_snapshot_size)
return virtualizable_boxes, virtualref_boxes
def allocate_with_vtable(self, descr=None):
@@ -1505,6 +1511,7 @@
if ginfo is not None:
end_vref -= 1
self.consume_virtualref_info(vrefinfo, end_vref)
+ self.cur_index = rffi.cast(lltype.Signed,
self.numb.first_snapshot_size)
def allocate_with_vtable(self, descr=None):
from rpython.jit.metainterp.executor import exec_new_with_vtable
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit