From a668cd2e97fbdab05aa57f88d6be2358b3136023 Mon Sep 17 00:00:00 2001 From: "simonmar@microsoft.com" Date: Wed, 30 Jan 2008 15:09:34 +0000 Subject: [PATCH] comment out a bogus assertion --- rts/sm/Evac.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/rts/sm/Evac.c b/rts/sm/Evac.c index 2ea4c28..ee88175 100644 --- a/rts/sm/Evac.c +++ b/rts/sm/Evac.c @@ -169,8 +169,11 @@ unchain_thunk_selectors(StgSelector *p, StgClosure *val) #else ASSERT(p->header.info == &stg_BLACKHOLE_info); #endif - // val must be in to-space. - ASSERT(!HEAP_ALLOCED(val) || Bdescr((P_)val)->gen_no > N || (Bdescr((P_)val)->flags & BF_EVACUATED)); + // val must be in to-space. Not always: when we recursively + // invoke eval_thunk_selector(), the recursive calls will not + // evacuate the value (because we want to select on the value, + // not evacuate it), so in this case val is in from-space. + // ASSERT(!HEAP_ALLOCED(val) || Bdescr((P_)val)->gen_no > N || (Bdescr((P_)val)->flags & BF_EVACUATED)); prev = (StgSelector*)((StgClosure *)p)->payload[0]; -- 1.7.10.4