Author: Armin Rigo <[email protected]>
Branch:
Changeset: r73885:c6df80a771d4
Date: 2014-10-10 16:15 +0200
http://bitbucket.org/pypy/pypy/changeset/c6df80a771d4/
Log: Fix an obscure case
diff --git a/rpython/jit/metainterp/optimizeopt/virtualize.py
b/rpython/jit/metainterp/optimizeopt/virtualize.py
--- a/rpython/jit/metainterp/optimizeopt/virtualize.py
+++ b/rpython/jit/metainterp/optimizeopt/virtualize.py
@@ -764,9 +764,12 @@
def optimize_GETARRAYITEM_GC(self, op):
value = self.getvalue(op.getarg(0))
if value.is_virtual():
+ assert isinstance(value, VArrayValue)
indexbox = self.get_constant_box(op.getarg(1))
if indexbox is not None:
itemvalue = value.getitem(indexbox.getint())
+ if itemvalue is None: # reading uninitialized array items?
+ itemvalue = value.constvalue # bah, just return 0
self.make_equal_to(op.result, itemvalue)
return
value.ensure_nonnull()
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit