fix for dirty_MUT_VAR: don't try to recordMutableCap in gen 0
[ghc-hetmet.git] / 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);
     }
 }