Author: Armin Rigo <ar...@tunes.org>
Branch: bitstring
Changeset: r83910:176848faf166
Date: 2016-04-26 16:19 +0200
http://bitbucket.org/pypy/pypy/changeset/176848faf166/

Log:    Fix: this goes outside the other loop

diff --git a/rpython/jit/metainterp/optimizeopt/heap.py 
b/rpython/jit/metainterp/optimizeopt/heap.py
--- a/rpython/jit/metainterp/optimizeopt/heap.py
+++ b/rpython/jit/metainterp/optimizeopt/heap.py
@@ -453,12 +453,13 @@
                 self.force_lazy_setarrayitem_submap(submap)
             if effectinfo.check_write_descr_array(arraydescr):
                 self.force_lazy_setarrayitem_submap(submap, can_cache=False)
-                if arraydescr in self.corresponding_array_descrs:
-                    dictdescr = self.corresponding_array_descrs.pop(arraydescr)
-                    try:
-                        del self.cached_dict_reads[dictdescr]
-                    except KeyError:
-                        pass # someone did it already
+        #
+        for arraydescr, dictdescr in self.corresponding_array_descrs.items():
+            if effectinfo.check_write_descr_array(arraydescr):
+                try:
+                    del self.cached_dict_reads[dictdescr]
+                except KeyError:
+                    pass # someone did it already
         #
         if effectinfo.check_forces_virtual_or_virtualizable():
             vrefinfo = self.optimizer.metainterp_sd.virtualref_info
@@ -483,7 +484,7 @@
                 cf.force_lazy_set(self, None, can_cache)
 
     def force_lazy_setarrayitem_submap(self, submap, can_cache=True):
-        for idx, cf in submap.iteritems():
+        for cf in submap.itervalues():
             cf.force_lazy_set(self, None, can_cache)
 
     def force_all_lazy_sets(self):
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to