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

Reply via email to