[pypy-commit] pypy gc-incminimark-pinning: solve "black->white" pointer problem for pinned objects
groggi
noreply at buildbot.pypy.org
Fri Sep 5 11:37:55 CEST 2014
Author: Gregor Wegberg <code at gregorwegberg.com>
Branch: gc-incminimark-pinning
Changeset: r73315:e9a6ac6462c4
Date: 2014-09-05 11:28 +0200
http://bitbucket.org/pypy/pypy/changeset/e9a6ac6462c4/
Log: solve "black->white" pointer problem for pinned objects
diff --git a/rpython/memory/gc/incminimark.py b/rpython/memory/gc/incminimark.py
--- a/rpython/memory/gc/incminimark.py
+++ b/rpython/memory/gc/incminimark.py
@@ -1215,6 +1215,12 @@
pass # black -> gray
elif self.header(obj).tid & GCFLAG_NO_HEAP_PTRS != 0:
pass # black -> white-but-prebuilt-so-dont-care
+ elif self._is_pinned(obj):
+ # black -> pinned: the pinned object is a white one as
+ # every minor collection visits them and takes care of
+ # visiting pinned objects.
+ # XXX (groggi) double check with fijal/armin
+ pass # black -> pinned
else:
ll_assert(False, "black -> white pointer found")
More information about the pypy-commit
mailing list