[pypy-svn] r65789 - in pypy/branch/tagged-pointers-framework/pypy/rpython/memory: gc gctransform
arigo at codespeak.net
arigo at codespeak.net
Tue Jun 16 10:06:58 CEST 2009
Author: arigo
Date: Tue Jun 16 10:06:57 2009
New Revision: 65789
Modified:
pypy/branch/tagged-pointers-framework/pypy/rpython/memory/gc/generation.py
pypy/branch/tagged-pointers-framework/pypy/rpython/memory/gctransform/framework.py
Log:
Missing a gc.points_to_valid_gc_object() in the thread-specific code.
The rest is just clean-ups.
Modified: pypy/branch/tagged-pointers-framework/pypy/rpython/memory/gc/generation.py
==============================================================================
--- pypy/branch/tagged-pointers-framework/pypy/rpython/memory/gc/generation.py (original)
+++ pypy/branch/tagged-pointers-framework/pypy/rpython/memory/gc/generation.py Tue Jun 16 10:06:57 2009
@@ -128,6 +128,8 @@
return nursery_size // 4 - 1
def is_in_nursery(self, addr):
+ ll_assert(llmemory.cast_adr_to_int(addr) & 1 == 0,
+ "odd-valued (i.e. tagged) pointer unexpected here")
return self.nursery <= addr < self.nursery_top
def malloc_fixedsize_clear(self, typeid, size, can_collect,
Modified: pypy/branch/tagged-pointers-framework/pypy/rpython/memory/gctransform/framework.py
==============================================================================
--- pypy/branch/tagged-pointers-framework/pypy/rpython/memory/gctransform/framework.py (original)
+++ pypy/branch/tagged-pointers-framework/pypy/rpython/memory/gctransform/framework.py Tue Jun 16 10:06:57 2009
@@ -843,7 +843,7 @@
end = gcdata.static_root_nongcend
while addr != end:
result = addr.address[0]
- if self.gc.points_to_valid_gc_object(result):
+ if gc.points_to_valid_gc_object(result):
collect_static_in_prebuilt_nongc(gc, result)
addr += sizeofaddr
if collect_static_in_prebuilt_gc:
@@ -851,7 +851,7 @@
end = gcdata.static_root_end
while addr != end:
result = addr.address[0]
- if self.gc.points_to_valid_gc_object(result):
+ if gc.points_to_valid_gc_object(result):
collect_static_in_prebuilt_gc(gc, result)
addr += sizeofaddr
if collect_stack_root:
@@ -909,7 +909,7 @@
addr = gcdata.root_stack_base
end = gcdata.root_stack_top
while addr != end:
- if self.gc.points_to_valid_gc_object(addr):
+ if gc.points_to_valid_gc_object(addr):
collect_stack_root(gc, addr)
addr += sizeofaddr
if self.collect_stacks_from_other_threads is not None:
@@ -1018,7 +1018,7 @@
end = stacktop - sizeofaddr
addr = end.address[0]
while addr != end:
- if addr.address[0] != llmemory.NULL:
+ if gc.points_to_valid_gc_object(addr):
callback(gc, addr)
addr += sizeofaddr
More information about the Pypy-commit
mailing list