[pypy-svn] r77194 - pypy/trunk/pypy/rpython/lltypesystem

arigo at codespeak.net arigo at codespeak.net
Mon Sep 20 11:25:56 CEST 2010


Author: arigo
Date: Mon Sep 20 11:25:55 2010
New Revision: 77194

Modified:
   pypy/trunk/pypy/rpython/lltypesystem/llarena.py
Log:
A quick hack that is enough to handle changing hashes in my
particular case (test_transformed_gc, TestMiniMarkGC).


Modified: pypy/trunk/pypy/rpython/lltypesystem/llarena.py
==============================================================================
--- pypy/trunk/pypy/rpython/lltypesystem/llarena.py	(original)
+++ pypy/trunk/pypy/rpython/lltypesystem/llarena.py	Mon Sep 20 11:25:55 2010
@@ -46,7 +46,7 @@
                 assert offset >= stop, "object overlaps cleared area"
             else:
                 obj = ptr._obj
-                del Arena.object_arena_location[obj]
+                _dictdel(Arena.object_arena_location, obj)
                 del self.objectptrs[offset]
                 del self.objectsizes[offset]
                 obj._free()
@@ -258,6 +258,16 @@
         raise RuntimeError(msg % (obj,))
     return arena.getaddr(offset)
 
+def _dictdel(d, key):
+    # hack
+    try:
+        del d[key]
+    except KeyError:
+        items = d.items()
+        d.clear()
+        d.update(items)
+        del d[key]
+
 class RoundedUpForAllocation(llmemory.AddressOffset):
     """A size that is rounded up in order to preserve alignment of objects
     following it.  For arenas containing heterogenous objects.



More information about the Pypy-commit mailing list