From: Simon Marlow Date: Fri, 12 Sep 2008 13:04:04 +0000 (+0000) Subject: Fix #2586, bug in THUNK_SELECTORs (again) X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=b562c2cb4e7a77387ac177f43680506c52c2bb95;p=ghc-hetmet.git Fix #2586, bug in THUNK_SELECTORs (again) This time, we had forgetten the write barrier in one place. --- diff --git a/rts/sm/Evac.c b/rts/sm/Evac.c index 9b42fc1..736c6c8 100644 --- a/rts/sm/Evac.c +++ b/rts/sm/Evac.c @@ -837,6 +837,11 @@ selector_chain: if (bd->flags & BF_EVACUATED) { unchain_thunk_selectors(prev_thunk_selector, (StgClosure *)p); *q = (StgClosure *)p; + // shortcut, behave as for: if (evac) evacuate(q); + if (evac && bd->step < gct->evac_step) { + gct->failed_to_evac = rtsTrue; + TICK_GC_FAILED_PROMOTION(); + } return; } // we don't update THUNK_SELECTORS in the compacted