[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