Author: Maciej Fijalkowski <[email protected]>
Branch: gc-minimark-pinning
Changeset: r54671:79227902ef69
Date: 2012-04-23 13:21 +0200
http://bitbucket.org/pypy/pypy/changeset/79227902ef69/
Log: pinned objects will remain in the nursery
diff --git a/pypy/rpython/memory/gc/minimark.py
b/pypy/rpython/memory/gc/minimark.py
--- a/pypy/rpython/memory/gc/minimark.py
+++ b/pypy/rpython/memory/gc/minimark.py
@@ -957,11 +957,12 @@
def debug_check_object(self, obj):
# after a minor or major collection, no object should be in the nursery
- ll_assert(not self.is_in_nursery(obj),
- "object in nursery after collection")
- # similarily, all objects should have this flag:
- ll_assert(self.header(obj).tid & GCFLAG_TRACK_YOUNG_PTRS,
- "missing GCFLAG_TRACK_YOUNG_PTRS")
+ if not self.header(obj).tid & GCFLAG_PINNED:
+ ll_assert(not self.is_in_nursery(obj),
+ "object in nursery after collection")
+ # similarily, all objects should have this flag:
+ ll_assert(self.header(obj).tid & GCFLAG_TRACK_YOUNG_PTRS,
+ "missing GCFLAG_TRACK_YOUNG_PTRS")
# the GCFLAG_VISITED should not be set between collections
ll_assert(self.header(obj).tid & GCFLAG_VISITED == 0,
"unexpected GCFLAG_VISITED")
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit