]> 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>
Tue, 7 Feb 2017 18:32:48 +0000 (21:32 +0300)
commitd20d98c38f33a65f7e4df2f24476e2ce2245fdc1
tree712ee748d8b6055d4ff628aed1218c4d506c65b3
parent340c8648e991e51df115147a33587aa9a0b34015
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