X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Fsm%2FStorage.c;h=2172f9bdb01d4e43f7a0e65db32e3e531125419b;hb=addf865136274069fe72793aa6f82a6e0fd4758a;hp=c9422e60b74f3835453045d55677fb76c97e913e;hpb=81090f01f17719f7c01072e2fea8d41062a3015e;p=ghc-hetmet.git diff --git a/rts/sm/Storage.c b/rts/sm/Storage.c index c9422e6..2172f9b 100644 --- a/rts/sm/Storage.c +++ b/rts/sm/Storage.c @@ -213,10 +213,10 @@ exitStorage (void) } void -freeStorage (void) +freeStorage (rtsBool free_heap) { stgFree(generations); - freeAllMBlocks(); + if (free_heap) freeAllMBlocks(); #if defined(THREADED_RTS) closeMutex(&sm_mutex); #endif @@ -353,6 +353,8 @@ allocNursery (bdescr *tail, nat blocks) if (i > 0) { bd[i].u.back = &bd[i-1]; + } else { + bd[i].u.back = NULL; } if (i+1 < n) {