summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2020-04-25 13:44:17 -0400
committerBen Gamari <ben@smart-cactus.org>2020-04-25 13:44:17 -0400
commit9116712467f0cfffd9ee03d568abd070a27e62a3 (patch)
treece1a76a71a5f9a8858e2646338d844d23c9daa19
parentd58bffe9976cb3afb2195ed4837cb20dea7e2a67 (diff)
downloadhaskell-9116712467f0cfffd9ee03d568abd070a27e62a3.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 2bd81a3cb8..2538516ad7 100644
--- a/rts/sm/NonMoving.c
+++ b/rts/sm/NonMoving.c
@@ -383,10 +383,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.