Author: fijal
Branch: compress-numbering
Changeset: r80952:2767cebe8bf3
Date: 2015-11-25 18:03 +0200
http://bitbucket.org/pypy/pypy/changeset/2767cebe8bf3/

Log:    fix virtualizables

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
@@ -497,8 +497,8 @@
         assert snapshot is not None # is that true?
         # count stack depth
         frame_info_list = self.snapshot_storage.rd_frame_info_list
-        stack_depth = 1
-        while frame_info_list.prev is not None:
+        stack_depth = 0
+        while frame_info_list is not None:
             frame_info_list = frame_info_list.prev
             stack_depth += 1
         storage.rd_stack_depth = stack_depth
diff --git a/rpython/jit/metainterp/virtualizable.py 
b/rpython/jit/metainterp/virtualizable.py
--- a/rpython/jit/metainterp/virtualizable.py
+++ b/rpython/jit/metainterp/virtualizable.py
@@ -137,12 +137,10 @@
                 x = reader.load_value_of_type(FIELDTYPE, item)
                 setattr(virtualizable, fieldname, x)
             for ARRAYITEMTYPE, fieldname in unroll_array_fields:
-                yyyy
                 lst = getattr(virtualizable, fieldname)
                 for j in range(getlength(lst)):
-                    i -= 1
-                    assert i >= 0
-                    x = reader.load_value_of_type(ARRAYITEMTYPE, numb.nums[i])
+                    item, index = numb_next_item(numb, index)                  
  
+                    x = reader.load_value_of_type(ARRAYITEMTYPE, item)
                     setarrayitem(lst, j, x)
 
         def load_list_of_boxes(virtualizable, reader, vable_box, numb, index):
@@ -156,13 +154,11 @@
                 item, index = numb_next_item(numb, index)
                 box = reader.decode_box_of_type(FIELDTYPE, item)
                 boxes.append(box)
-            for ARRAYITEMTYPE, fieldname in unroll_array_fields_rev:
-                xxx
+            for ARRAYITEMTYPE, fieldname in unroll_array_fields:
                 lst = getattr(virtualizable, fieldname)
-                for j in range(getlength(lst) - 1, -1, -1):
-                    i -= 1
-                    assert i >= 0
-                    box = reader.decode_box_of_type(ARRAYITEMTYPE, 
numb.nums[i])
+                for j in range(getlength(lst)):
+                    item, index = numb_next_item(numb, index)                  
  
+                    box = reader.decode_box_of_type(ARRAYITEMTYPE, item)
                     boxes.append(box)
             boxes.append(vable_box)
             return boxes
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to