[Gc] Bug fix for GC_allochblk

Ivan Maidanski ivmai at mail.ru
Sat Jun 13 10:00:09 PDT 2009


Hi!

This small patch fixes the bug when GC_alloc_large() grows the heap to the limit (calling GC_allochblk() in a loop) and returns NULL (this could happen only in the generational mode with unmapping).

This is, in fact, my diff58. The situation is described in:
http://permalink.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2558

I've also added a FIXME for an assertion (in GC_merge_unmapped()) which is sometimes violated.

ChangeLog entries:

        * allchblk.c (GC_merge_unmapped): Add FIXME for
        GC_ASSERT(!IS_MAPPED(nexthdr)).
        * allchblk.c (GC_merge_unmapped): Remove unnecessary assertion.
        * allchblk.c (GC_allochblk): Don't avoid blocks splitting in case
        of generational mode with USE_MUNMAP to prevent unlimited heap
        growth and failing.

Bye.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: =?koi8-r?Q?diff99=5Fcvs?=
Type: application/octet-stream
Size: 1271 bytes
Desc: not available
Url : http://napali.hpl.hp.com/pipermail/gc/attachments/20090613/761f8f26/koi8-rQdiff995Fcvs.obj


More information about the Gc mailing list