[project @ 2005-02-11 14:01:30 by simonmar]
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.