[pypy-commit] pypy default: Handle this case as well

alex_gaynor noreply at buildbot.pypy.org
Sun Oct 13 16:49:38 CEST 2013


Author: Alex Gaynor <alex.gaynor at gmail.com>
Branch: 
Changeset: r67344:5507590c8364
Date: 2013-10-13 16:17 +0200
http://bitbucket.org/pypy/pypy/changeset/5507590c8364/

Log:	Handle this case as well

diff --git a/rpython/jit/metainterp/heapcache.py b/rpython/jit/metainterp/heapcache.py
--- a/rpython/jit/metainterp/heapcache.py
+++ b/rpython/jit/metainterp/heapcache.py
@@ -155,6 +155,15 @@
                             else:
                                 cache[dststart + i].clear()
                     return
+                elif argboxes[2] in self.new_boxes:
+                    # Fish the descr out of the effectinfo
+                    cache = self.heap_array_cache.get(effectinfo.write_descrs_arrays[0], None)
+                    if cache is not None:
+                        for idx, cache in cache.iteritems():
+                            for frombox in cache.keys():
+                                if not self.is_unescaped(frombox):
+                                    del cache[frombox]
+                    return
             else:
                 # Only invalidate things that are either escaped or arguments
                 for descr, boxes in self.heap_cache.iteritems():


More information about the pypy-commit mailing list