diff options
author | Ian Lynagh <igloo@earth.li> | 2012-05-01 00:25:55 +0100 |
---|---|---|
committer | Ian Lynagh <igloo@earth.li> | 2012-05-01 00:25:55 +0100 |
commit | 3457c6befa697e52dd71f7efa1940f010f792469 (patch) | |
tree | b2e81f9eb2f28d332d7ba6f29998d6249a11a6ff | |
parent | e89ef70475fa5e9cf17af01b1b5d7fced0d2e13c (diff) | |
download | haskell-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.c | 2 |
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; |