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

Reply via email to