Index: src/heap/mark-compact.cc |
diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc |
index 8b1c7085c0b2fdf8190b3193b69a6059bd54e223..bad3495bbe4befe1c583ff680b66bc8a845ff213 100644 |
--- a/src/heap/mark-compact.cc |
+++ b/src/heap/mark-compact.cc |
@@ -133,7 +133,7 @@ static void VerifyMarking(NewSpace* space) { |
// page->area_start() as start of range on all pages. |
CHECK_EQ(space->bottom(), Page::FromAddress(space->bottom())->area_start()); |
- NewSpacePageRange range(space->bottom(), end); |
+ PageRange range(space->bottom(), end); |
for (auto it = range.begin(); it != range.end();) { |
Page* page = *(it++); |
Address limit = it != range.end() ? page->area_end() : end; |
@@ -185,29 +185,21 @@ class VerifyEvacuationVisitor : public ObjectVisitor { |
static void VerifyEvacuation(Page* page) { |
VerifyEvacuationVisitor visitor; |
HeapObjectIterator iterator(page); |
- for (HeapObject* heap_object = iterator.Next(); heap_object != NULL; |
+ for (HeapObject* heap_object = iterator.Next(); heap_object != nullptr; |
heap_object = iterator.Next()) { |
- // We skip free space objects. |
- if (!heap_object->IsFiller()) { |
- heap_object->Iterate(&visitor); |
- } |
+ CHECK(!heap_object->IsFiller()); |
+ heap_object->Iterate(&visitor); |
} |
} |
static void VerifyEvacuation(NewSpace* space) { |
VerifyEvacuationVisitor visitor; |
- NewSpacePageRange range(space->bottom(), space->top()); |
- for (auto it = range.begin(); it != range.end();) { |
- Page* page = *(it++); |
- Address current = page->area_start(); |
- Address limit = it != range.end() ? page->area_end() : space->top(); |
- CHECK(limit == space->top() || !page->Contains(space->top())); |
- while (current < limit) { |
- HeapObject* object = HeapObject::FromAddress(current); |
- object->Iterate(&visitor); |
- current += object->Size(); |
- } |
+ HeapObjectIterator iterator(space); |
+ for (HeapObject* heap_object = iterator.Next(); heap_object != nullptr; |
+ heap_object = iterator.Next()) { |
+ CHECK(!heap_object->IsFiller()); |
+ heap_object->Iterate(&visitor); |
} |
} |
@@ -332,7 +324,7 @@ void MarkCompactCollector::VerifyMarkbitsAreClean(PagedSpace* space) { |
void MarkCompactCollector::VerifyMarkbitsAreClean(NewSpace* space) { |
- for (Page* p : NewSpacePageRange(space->bottom(), space->top())) { |
+ for (Page* p : PageRange(space->bottom(), space->top())) { |
CHECK(p->markbits()->IsClean()); |
CHECK_EQ(0, p->LiveBytes()); |
} |
@@ -1964,7 +1956,7 @@ void MarkCompactCollector::DiscoverGreyObjectsInSpace(PagedSpace* space) { |
void MarkCompactCollector::DiscoverGreyObjectsInNewSpace() { |
NewSpace* space = heap()->new_space(); |
- for (Page* page : NewSpacePageRange(space->bottom(), space->top())) { |
+ for (Page* page : PageRange(space->bottom(), space->top())) { |
DiscoverGreyObjectsOnPage(page); |
if (marking_deque()->IsFull()) return; |
} |
@@ -3031,7 +3023,7 @@ static String* UpdateReferenceInExternalStringTableEntry(Heap* heap, |
void MarkCompactCollector::EvacuateNewSpacePrologue() { |
NewSpace* new_space = heap()->new_space(); |
// Append the list of new space pages to be processed. |
- for (Page* p : NewSpacePageRange(new_space->bottom(), new_space->top())) { |
+ for (Page* p : PageRange(new_space->bottom(), new_space->top())) { |
newspace_evacuation_candidates_.Add(p); |
} |
new_space->Flip(); |
@@ -3817,7 +3809,7 @@ void UpdateToSpacePointersInParallel(Heap* heap, base::Semaphore* semaphore) { |
heap, heap->isolate()->cancelable_task_manager(), semaphore); |
Address space_start = heap->new_space()->bottom(); |
Address space_end = heap->new_space()->top(); |
- for (Page* page : NewSpacePageRange(space_start, space_end)) { |
+ for (Page* page : PageRange(space_start, space_end)) { |
Address start = |
page->Contains(space_start) ? space_start : page->area_start(); |
Address end = page->Contains(space_end) ? space_end : page->area_end(); |