fix for dirty_MUT_VAR: don't try to recordMutableCap in gen 0
authorSimon Marlow <simonmar@microsoft.com>
Fri, 10 Feb 2006 12:00:21 +0000 (12:00 +0000)
committerSimon Marlow <simonmar@microsoft.com>
Fri, 10 Feb 2006 12:00:21 +0000 (12:00 +0000)
ghc/rts/Storage.c

index b6fab58..1c14265 100644 (file)
@@ -769,9 +769,11 @@ void
 dirty_MUT_VAR(StgRegTable *reg, StgClosure *p)
 {
     Capability *cap = regTableToCapability(reg);
+    bdescr *bd;
     if (p->header.info == &stg_MUT_VAR_CLEAN_info) {
        p->header.info = &stg_MUT_VAR_DIRTY_info;
-       recordMutableCap(p,cap,Bdescr(p)->gen_no);
+       bd = Bdescr(p);
+       if (bd->gen_no > 0) recordMutableCap(p,cap,bd->gen_no);
     }
 }