-
Simon Marlow authored
ASSERT in updateWithIndirection() that we haven't already updated this object with an indirection, and fix two places in the RTS where this could happen. The problem only occurs when we're in a black-hole-style loop, and there are multiple update frames on the stack pointing to the same object (this is possible because of lazy black-holing). Both stack squeezing and asynchronous exception raising walk down the stack and remove update frames, updating their contents with indirections. If we don't protect against multiple updates, the mutable list in the old generation may get into a bogus state.
435b1086