[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.