summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2019-06-16 15:01:30 -0400
committerBen Gamari <ben@smart-cactus.org>2019-10-22 18:57:42 -0400
commit24a0fc23dbc628f2a6bec4d6bf68c6a5e5a918d0 (patch)
tree051e3a391932ea0546e246c9d2272a7d649a700f
parent80e158f6c1410061888a36b5338b133b2e502259 (diff)
downloadhaskell-24a0fc23dbc628f2a6bec4d6bf68c6a5e5a918d0.tar.gz
Revert "NonMovingScav: Account for new allocations"
This reverts commit ce36fd898436386c13468d41adaf6f11f2e9c7f1.
-rw-r--r--rts/sm/NonMovingScav.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/rts/sm/NonMovingScav.c b/rts/sm/NonMovingScav.c
index da8236e180..5c5019ba7f 100644
--- a/rts/sm/NonMovingScav.c
+++ b/rts/sm/NonMovingScav.c
@@ -373,12 +373,13 @@ scavengeNonmovingSegment (struct NonmovingSegment *seg)
ASSERT(seg_block->u.scan >= (P_)nonmovingSegmentGetBlock(seg, 0));
ASSERT(seg_block->u.scan <= (P_)nonmovingSegmentGetBlock(seg, seg->next_free));
- nonmoving_block_idx p_idx = nonmovingGetBlockIdx(seg_block->u.scan);
- if (p_idx == seg->next_free)
+ StgPtr scan_end = (P_)nonmovingSegmentGetBlock(seg, seg->next_free);
+ if (seg_block->u.scan == scan_end)
return;
trace_dump_note("scavenging segment");
- while (p_idx < seg->next_free) {
+ nonmoving_block_idx p_idx = nonmovingGetBlockIdx(seg_block->u.scan);
+ while (seg_block->u.scan < scan_end) {
StgClosure *p = (StgClosure*)seg_block->u.scan;
trace_dump_set_source_closure(p);