[Gc] Assertion violation in GC_merge_unmapped

Ivan Maidanski ivmai at mail.ru
Tue Oct 28 08:29:41 PST 2008


"GC_ASSERT(!IS_MAPPED(nexthdr))" in GC_merge_unmapped() is sometimes violated (e.g. test.c+gclib compiled for Win32 in config -DALL_INTERIOR_POINTERS -DGC_THREADS -DTHREAD_LOCAL_ALLOC -DUSE_MUNMAP -DGC_ASSERTIONS, but not always).

So it's possible that hhdr and nexthdr are both mapped, but what should we do in this case?

The next question: is HBLK_IS_FREE(hhdr) always satisfied here (if IS_MAPPED(hhdr) == TRUE)?

PS. "GC_ASSERT(!IS_MAPPED(hhdr))" assertion (below) is redundant since it is in the "else" branch of "if (IS_MAPPED(hhdr))".


More information about the Gc mailing list