From 797dca87dcc96224ee7e96e852c4381266533597 Mon Sep 17 00:00:00 2001 From: "simonmar@microsoft.com" Date: Thu, 10 Jan 2008 10:56:28 +0000 Subject: [PATCH] Fix bug in eval_thunk_selector() --- rts/sm/Evac.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) 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; } -- 1.7.10.4