From: Ben.Lippmeier@anu.edu.au Date: Mon, 22 Feb 2010 03:16:27 +0000 (+0000) Subject: Fix #3875: Crash in parallel GC, wrong pointer was being tested. X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=c24c65f518f153ff59acf27417fa36c14365951e Fix #3875: Crash in parallel GC, wrong pointer was being tested. --- diff --git a/rts/sm/Evac.c b/rts/sm/Evac.c index db24909..76026b0 100644 --- a/rts/sm/Evac.c +++ b/rts/sm/Evac.c @@ -878,7 +878,7 @@ selector_chain: } while (info_ptr == (W_)&stg_WHITEHOLE_info); // make sure someone else didn't get here first... - if (IS_FORWARDING_PTR(p) || + if (IS_FORWARDING_PTR(info_ptr) || INFO_PTR_TO_STRUCT(info_ptr)->type != THUNK_SELECTOR) { // v. tricky now. The THUNK_SELECTOR has been evacuated // by another thread, and is now either a forwarding ptr or IND.