| Index: src/heap/spaces.cc
|
| diff --git a/src/heap/spaces.cc b/src/heap/spaces.cc
|
| index afbb452f54527878fe55a8b4034344f51b535627..db8fb4b7d066bb67c6454827b3570cad811e77d7 100644
|
| --- a/src/heap/spaces.cc
|
| +++ b/src/heap/spaces.cc
|
| @@ -56,10 +56,14 @@ bool HeapObjectIterator::AdvanceToNextPage() {
|
| DCHECK_EQ(cur_addr_, cur_end_);
|
| if (current_page_ == page_range_.end()) return false;
|
| Page* cur_page = *(current_page_++);
|
| - space_->heap()
|
| - ->mark_compact_collector()
|
| - ->sweeper()
|
| - .SweepOrWaitUntilSweepingCompleted(cur_page);
|
| + Heap* heap = space_->heap();
|
| +
|
| + heap->mark_compact_collector()->sweeper().SweepOrWaitUntilSweepingCompleted(
|
| + cur_page);
|
| + if (cur_page->IsFlagSet(Page::SWEEP_TO_ITERATE))
|
| + heap->minor_mark_compact_collector()->MakeIterable(
|
| + cur_page, MarkingTreatmentMode::CLEAR,
|
| + FreeSpaceTreatmentMode::IGNORE_FREE_SPACE);
|
| cur_addr_ = cur_page->area_start();
|
| cur_end_ = cur_page->area_end();
|
| DCHECK(cur_page->SweepingDone());
|
|
|