summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2012-05-01 00:25:55 +0100
committerIan Lynagh <igloo@earth.li>2012-05-01 00:25:55 +0100
commit3457c6befa697e52dd71f7efa1940f010f792469 (patch)
treeb2e81f9eb2f28d332d7ba6f29998d6249a11a6ff
parente89ef70475fa5e9cf17af01b1b5d7fced0d2e13c (diff)
downloadhaskell-3457c6befa697e52dd71f7efa1940f010f792469.tar.gz
Fix maintenance of n_blocks in the RTS
It was causing assertion failures of ASSERT(countBlocks(nursery->blocks) == nursery->n_blocks) at ghc-stage2: internal error: ASSERTION FAILED: file rts/sm/Sanity.c, line 878
-rw-r--r--rts/sm/Storage.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/rts/sm/Storage.c b/rts/sm/Storage.c
index 7da0c70e46..17798a25b8 100644
--- a/rts/sm/Storage.c
+++ b/rts/sm/Storage.c
@@ -796,7 +796,7 @@ allocatePinned (Capability *cap, lnat n)
if (bd->link != NULL) {
bd->link->u.back = cap->r.rCurrentNursery;
}
- cap->r.rNursery->n_blocks--;
+ cap->r.rNursery->n_blocks -= bd->blocks;
}
cap->pinned_object_block = bd;