From: simonmar@microsoft.com Date: Thu, 10 Jan 2008 10:56:28 +0000 (+0000) Subject: Fix bug in eval_thunk_selector() X-Git-Tag: Before_cabalised-GHC~262 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=797dca87dcc96224ee7e96e852c4381266533597;hp=d07d5ed880e6f4529c2331a5d5a963505d884dd9 Fix bug in eval_thunk_selector() --- diff --git a/rts/sm/Evac.c b/rts/sm/Evac.c index 295a030..3593943 100644 --- a/rts/sm/Evac.c +++ b/rts/sm/Evac.c @@ -404,13 +404,11 @@ bale_out: // We didn't manage to evaluate this thunk; restore the old info // pointer. But don't forget: we still need to evacuate the thunk itself. SET_INFO(p, (const StgInfoTable *)info_ptr); + *q = (StgClosure *)p; if (evac) { - copy(&val,(StgClosure *)p,THUNK_SELECTOR_sizeW(),bd->step->to); - } else { - val = (StgClosure *)p; + copy(q,(StgClosure *)p,THUNK_SELECTOR_sizeW(),bd->step->to); } - *q = val; - unchain_thunk_selectors(prev_thunk_selector, val); + unchain_thunk_selectors(prev_thunk_selector, *q); return; }