]> 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>
Thu, 19 Jan 2017 21:36:41 +0000 (00:36 +0300)
commitef5041dcc464554ddeba515ce301e24632e58f16
treef5173a15061dca1ab62edb35057b7dd72f9dca14
parent2c5aebcdb4773dbf11ef0502acce16fab7f15712
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