Author: Maciej Fijalkowski <[email protected]>
Branch: optresult-unroll
Changeset: r79494:91248376cc45
Date: 2015-09-07 09:37 +0200
http://bitbucket.org/pypy/pypy/changeset/91248376cc45/
Log: be a bit more robust about missing fieldstate
diff --git a/rpython/jit/metainterp/optimizeopt/virtualstate.py
b/rpython/jit/metainterp/optimizeopt/virtualstate.py
--- a/rpython/jit/metainterp/optimizeopt/virtualstate.py
+++ b/rpython/jit/metainterp/optimizeopt/virtualstate.py
@@ -164,6 +164,8 @@
fieldbox = None
fieldbox_runtime = None
if self.fieldstate[i] is not None:
+ if other.fieldstate[i] is None:
+ raise VirtualStatesCantMatch
self.fieldstate[i].generate_guards(other.fieldstate[i],
fieldbox,
fieldbox_runtime, state)
@@ -244,7 +246,10 @@
fieldbox = opinfo._items[i]
fieldbox_runtime = state.get_runtime_item(runtime_box,
self.arraydescr, i)
- self.fieldstate[i].generate_guards(other.fieldstate[i],
+ if self.fieldstate[i] is not None:
+ if other.fieldstate[i] is None:
+ raise VirtualStatesCantMatch
+ self.fieldstate[i].generate_guards(other.fieldstate[i],
fieldbox, fieldbox_runtime, state)
def enum_forced_boxes(self, boxes, box, optimizer, force_boxes=False):
@@ -303,6 +308,8 @@
fieldstate = self.fieldstate[index]
if fieldstate is None:
continue
+ if other.fieldstate[index] is None:
+ raise VirtualStatesCantMatch
if box is not None and opinfo is not None:
fieldbox = opinfo._items[index]
fieldbox_runtime = state.get_runtime_interiorfield(
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit