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