• simonmar's avatar
    [project @ 2005-02-11 14:01:30 by simonmar] · 4d3ce736
    simonmar authored
    Careful with mutable list entries that point to THUNKs: the thunk
    might be updated, and the resulting IND_OLDGEN will be on the mutable
    list twice.
    We previously avoided this problem by having an extra MUT_CONS object
    on the mutable list pointing to the THUNK, so that we could tell the
    difference between the entry on the mutable list that used to be the
    THUNK, and the new entry for the IND_OLDGEN.
    We don't have MUT_CONS any more (this was part of the cleanup from
    separating the mutable list from the heap).  So, now, when scavenging
    an IND_OLDGEN on the mutable list, we check whether it is pointing to
    an already-evacuated object.  This is a bit crude, but at least it is
    a localised hack.
GC.c 115 KB