[pypy-svn] r65078 - pypy/branch/tagged-pointers-framework/pypy/rpython/memory/gc
cfbolz at codespeak.net
cfbolz at codespeak.net
Wed May 6 09:39:45 CEST 2009
Author: cfbolz
Date: Wed May 6 09:39:43 2009
New Revision: 65078
Modified:
pypy/branch/tagged-pointers-framework/pypy/rpython/memory/gc/markcompact.py
Log:
missed a copy of trace
Modified: pypy/branch/tagged-pointers-framework/pypy/rpython/memory/gc/markcompact.py
==============================================================================
--- pypy/branch/tagged-pointers-framework/pypy/rpython/memory/gc/markcompact.py (original)
+++ pypy/branch/tagged-pointers-framework/pypy/rpython/memory/gc/markcompact.py Wed May 6 09:39:43 2009
@@ -409,14 +409,17 @@
length = (obj + llmemory.gcarrayofptr_lengthoffset).signed[0]
item = obj + llmemory.gcarrayofptr_itemsoffset
while length > 0:
- callback(item, arg)
+ if self.points_to_valid_gc_object(item):
+ callback(item, arg)
item += llmemory.gcarrayofptr_singleitemoffset
length -= 1
return
offsets = self.offsets_to_gc_pointers(typeid)
i = 0
while i < len(offsets):
- callback(obj + offsets[i], arg)
+ item = obj + offsets[i]
+ if self.points_to_valid_gc_object(item):
+ callback(item, arg)
i += 1
if self.has_gcptr_in_varsize(typeid):
item = obj + self.varsize_offset_to_variable_part(typeid)
@@ -426,7 +429,9 @@
while length > 0:
j = 0
while j < len(offsets):
- callback(item + offsets[j], arg)
+ itemobj = item + offsets[j]
+ if self.points_to_valid_gc_object(itemobj):
+ callback(itemobj, arg)
j += 1
item += itemlength
length -= 1
More information about the Pypy-commit
mailing list