summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2020-04-25 13:44:17 -0400
committerMarge Bot <ben+marge-bot@smart-cactus.org>2020-04-30 21:34:44 -0400
commit2aa676114bca40d6124ba90d13242c7c102369e0 (patch)
treee73d6c532279065a60a4470b7d68342416114665
parent014ef4a3d9ee30b8add9118950f1f5007143bd1c (diff)
downloadhaskell-2aa676114bca40d6124ba90d13242c7c102369e0.tar.gz
nonmoving: Clear bitmap after initializing block size
Previously nonmovingInitSegment would clear the bitmap before initializing the segment's block size. This is broken since nonmovingClearBitmap looks at the segment's block size to determine how much bitmap to clear.
-rw-r--r--rts/sm/NonMoving.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/rts/sm/NonMoving.c b/rts/sm/NonMoving.c
index bdf22dc37b..a39b889c92 100644
--- a/rts/sm/NonMoving.c
+++ b/rts/sm/NonMoving.c
@@ -402,10 +402,10 @@ static void nonmovingInitSegment(struct NonmovingSegment *seg, uint8_t log_block
seg->link = NULL;
seg->todo_link = NULL;
seg->next_free = 0;
- nonmovingClearBitmap(seg);
bd->nonmoving_segment.log_block_size = log_block_size;
bd->nonmoving_segment.next_free_snap = 0;
bd->u.scan = nonmovingSegmentGetBlock(seg, 0);
+ nonmovingClearBitmap(seg);
}
// Add a segment to the free list.