]> granicus.if.org Git - gc/commit
Revert "Skip GC_DS_PER_OBJECT objs with negative descriptor in GC_mark_from"
authorIvan Maidanski <ivmai@mail.ru>
Thu, 19 Jan 2017 21:36:41 +0000 (00:36 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Mon, 6 Feb 2017 16:46:13 +0000 (19:46 +0300)
commit44d73c2021e7fdb6d69eafc09a98d0fc6a0c26d9
treeedf08554c615125cca0118b36f381c99c20a550c
parent3bb4b6b3cc308988ba317282f669090f43e687e5
Revert "Skip GC_DS_PER_OBJECT objs with negative descriptor in GC_mark_from"

Issue #137 (bdwgc).

This reverts commit 57f36b93c1f1f2beb6bbbf0cb38c714b518abfdd.

Because it breaks gctest "list reversal" if compiled with
GC_GCJ_SUPPORT for MinGW/x86.  This is caused by the fact that static
data roots could be between two GC heap regions thus GC with the patch
skips scanning of a reachable GCJ object with a descriptor located in
the static data roots.

To fix the issue (#92) of mistaking the free list pointers in free
objects for being type descriptor pointers, another approach should be
taken (e.g. marking objects in free lists).
mark.c