| Index: src/heap/mark-compact.cc
|
| diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc
|
| index 44262e42b162b58974cf7b2092ea141047856d2a..83c2cd28714e59852f0dd70ae13f07d464fd36c5 100644
|
| --- a/src/heap/mark-compact.cc
|
| +++ b/src/heap/mark-compact.cc
|
| @@ -1764,7 +1764,7 @@ static void DiscoverGreyObjectsWithIterator(Heap* heap,
|
| T* it) {
|
| // The caller should ensure that the marking stack is initially not full,
|
| // so that we don't waste effort pointlessly scanning for objects.
|
| - DCHECK(!marking_deque->IsFull());
|
| + DCHECK(!marking_deque->overflowed());
|
|
|
| Map* filler_map = heap->one_pointer_filler_map();
|
| for (HeapObject* object = it->Next(); object != NULL; object = it->Next()) {
|
| @@ -1773,7 +1773,7 @@ static void DiscoverGreyObjectsWithIterator(Heap* heap,
|
| Marking::GreyToBlack(markbit);
|
| MemoryChunk::IncrementLiveBytesFromGC(object->address(), object->Size());
|
| marking_deque->PushBlack(object);
|
| - if (marking_deque->IsFull()) return;
|
| + if (marking_deque->overflowed()) return;
|
| }
|
| }
|
| }
|
| @@ -1784,7 +1784,7 @@ static inline int MarkWordToObjectStarts(uint32_t mark_bits, int* starts);
|
|
|
| static void DiscoverGreyObjectsOnPage(MarkingDeque* marking_deque,
|
| MemoryChunk* p) {
|
| - DCHECK(!marking_deque->IsFull());
|
| + DCHECK(!marking_deque->overflowed());
|
| DCHECK(strcmp(Marking::kWhiteBitPattern, "00") == 0);
|
| DCHECK(strcmp(Marking::kBlackBitPattern, "10") == 0);
|
| DCHECK(strcmp(Marking::kGreyBitPattern, "11") == 0);
|
| @@ -1818,7 +1818,7 @@ static void DiscoverGreyObjectsOnPage(MarkingDeque* marking_deque,
|
| HeapObject* object = HeapObject::FromAddress(addr);
|
| MemoryChunk::IncrementLiveBytesFromGC(object->address(), object->Size());
|
| marking_deque->PushBlack(object);
|
| - if (marking_deque->IsFull()) return;
|
| + if (marking_deque->overflowed()) return;
|
| offset += 2;
|
| grey_objects >>= 2;
|
| }
|
| @@ -1896,7 +1896,7 @@ static void DiscoverGreyObjectsInSpace(Heap* heap, MarkingDeque* marking_deque,
|
| while (it.has_next()) {
|
| Page* p = it.next();
|
| DiscoverGreyObjectsOnPage(marking_deque, p);
|
| - if (marking_deque->IsFull()) return;
|
| + if (marking_deque->overflowed()) return;
|
| }
|
| }
|
|
|
| @@ -1908,7 +1908,7 @@ static void DiscoverGreyObjectsInNewSpace(Heap* heap,
|
| while (it.has_next()) {
|
| NewSpacePage* page = it.next();
|
| DiscoverGreyObjectsOnPage(marking_deque, page);
|
| - if (marking_deque->IsFull()) return;
|
| + if (marking_deque->overflowed()) return;
|
| }
|
| }
|
|
|
| @@ -2034,31 +2034,31 @@ void MarkCompactCollector::RefillMarkingDeque() {
|
| DCHECK(marking_deque_.overflowed());
|
|
|
| DiscoverGreyObjectsInNewSpace(heap(), &marking_deque_);
|
| - if (marking_deque_.IsFull()) return;
|
| + if (marking_deque_.overflowed()) return;
|
|
|
| DiscoverGreyObjectsInSpace(heap(), &marking_deque_,
|
| heap()->old_pointer_space());
|
| - if (marking_deque_.IsFull()) return;
|
| + if (marking_deque_.overflowed()) return;
|
|
|
| DiscoverGreyObjectsInSpace(heap(), &marking_deque_, heap()->old_data_space());
|
| - if (marking_deque_.IsFull()) return;
|
| + if (marking_deque_.overflowed()) return;
|
|
|
| DiscoverGreyObjectsInSpace(heap(), &marking_deque_, heap()->code_space());
|
| - if (marking_deque_.IsFull()) return;
|
| + if (marking_deque_.overflowed()) return;
|
|
|
| DiscoverGreyObjectsInSpace(heap(), &marking_deque_, heap()->map_space());
|
| - if (marking_deque_.IsFull()) return;
|
| + if (marking_deque_.overflowed()) return;
|
|
|
| DiscoverGreyObjectsInSpace(heap(), &marking_deque_, heap()->cell_space());
|
| - if (marking_deque_.IsFull()) return;
|
| + if (marking_deque_.overflowed()) return;
|
|
|
| DiscoverGreyObjectsInSpace(heap(), &marking_deque_,
|
| heap()->property_cell_space());
|
| - if (marking_deque_.IsFull()) return;
|
| + if (marking_deque_.overflowed()) return;
|
|
|
| LargeObjectIterator lo_it(heap()->lo_space());
|
| DiscoverGreyObjectsWithIterator(heap(), &marking_deque_, &lo_it);
|
| - if (marking_deque_.IsFull()) return;
|
| + if (marking_deque_.overflowed()) return;
|
|
|
| marking_deque_.ClearOverflowed();
|
| }
|
|
|