[pypy-svn] r47256 - in pypy/branch/kill-keepalives-again/pypy/rpython/lltypesystem: . test

arigo at codespeak.net arigo at codespeak.net
Sun Oct 7 13:09:18 CEST 2007


Author: arigo
Date: Sun Oct  7 13:09:17 2007
New Revision: 47256

Modified:
   pypy/branch/kill-keepalives-again/pypy/rpython/lltypesystem/llarena.py
   pypy/branch/kill-keepalives-again/pypy/rpython/lltypesystem/test/test_llarena.py
Log:
Minor fixes.


Modified: pypy/branch/kill-keepalives-again/pypy/rpython/lltypesystem/llarena.py
==============================================================================
--- pypy/branch/kill-keepalives-again/pypy/rpython/lltypesystem/llarena.py	(original)
+++ pypy/branch/kill-keepalives-again/pypy/rpython/lltypesystem/llarena.py	Sun Oct  7 13:09:17 2007
@@ -106,6 +106,8 @@
     def __eq__(self, other):
         if isinstance(other, fakearenaaddress):
             return self.arena is other.arena and self.offset == other.offset
+        elif isinstance(other, llmemory.fakeaddress) and not other:
+            return False      # 'self' can't be equal to NULL
         else:
             return llmemory.fakeaddress.__eq__(self, other)
 
@@ -132,12 +134,15 @@
 
 def arena_free(arena_addr):
     """Release an arena."""
-    arena_reset(arena_addr, False)
+    assert isinstance(arena_addr, fakearenaaddress)
+    assert arena_addr.offset == 0
+    arena_addr.arena.reset(False)
     arena_addr.arena.freed = True
 
-def arena_reset(arena_addr, zero):
+def arena_reset(arena_addr, myarenasize, zero):
     """Free all objects in the arena, which can then be reused.
     The arena is filled with zeroes if 'zero' is True."""
     assert isinstance(arena_addr, fakearenaaddress)
     assert arena_addr.offset == 0
+    assert myarenasize == arena_addr.arena.nbytes
     arena_addr.arena.reset(zero)

Modified: pypy/branch/kill-keepalives-again/pypy/rpython/lltypesystem/test/test_llarena.py
==============================================================================
--- pypy/branch/kill-keepalives-again/pypy/rpython/lltypesystem/test/test_llarena.py	(original)
+++ pypy/branch/kill-keepalives-again/pypy/rpython/lltypesystem/test/test_llarena.py	Sun Oct  7 13:09:17 2007
@@ -8,7 +8,10 @@
     S = lltype.Struct('S', ('x',lltype.Signed))
     SPTR = lltype.Ptr(S)
     ssize = llmemory.raw_malloc_usage(llmemory.sizeof(S))
-    a = arena_malloc(2*ssize+1, False)
+    myarenasize = 2*ssize+1
+    a = arena_malloc(myarenasize, False)
+    assert a != llmemory.NULL
+    assert a + 3 != llmemory.NULL
 
     s1_ptr1 = cast_adr_to_ptr(a, SPTR)
     s1_ptr1.x = 1
@@ -34,7 +37,7 @@
     py.test.raises(ArenaError, cast_adr_to_ptr, a+2*ssize, SPTR)
     py.test.raises(ArenaError, cast_adr_to_ptr, a+2*ssize+1, SPTR)
 
-    arena_reset(a, True)
+    arena_reset(a, myarenasize, True)
     s1_ptr1 = cast_adr_to_ptr(a, SPTR)
     assert s1_ptr1.x == 0
     s1_ptr1.x = 5



More information about the Pypy-commit mailing list