Author: Alex Gaynor <[email protected]>
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():
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to