diff --git a/src/heap/incremental-marking-inl.h b/src/heap/incremental-marking-inl.h index d523841a87..fabf59d016 100644 --- a/src/heap/incremental-marking-inl.h +++ b/src/heap/incremental-marking-inl.h @@ -105,13 +105,13 @@ void IncrementalMarking::BlackToGreyAndUnshift(HeapObject* obj, } } - heap_->mark_compact_collector()->marking_deque()->UnshiftGrey(obj); + heap_->mark_compact_collector()->marking_deque()->Unshift(obj); } void IncrementalMarking::WhiteToGreyAndPush(HeapObject* obj, MarkBit mark_bit) { Marking::WhiteToGrey(mark_bit); - heap_->mark_compact_collector()->marking_deque()->PushGrey(obj); + heap_->mark_compact_collector()->marking_deque()->Push(obj); } } } // namespace v8::internal diff --git a/src/heap/incremental-marking.cc b/src/heap/incremental-marking.cc index c4477acc24..544ee7458b 100644 --- a/src/heap/incremental-marking.cc +++ b/src/heap/incremental-marking.cc @@ -197,7 +197,7 @@ class IncrementalMarkingMarkingVisitor chunk->set_progress_bar(start_offset); if (start_offset < object_size) { if (Marking::IsGrey(Marking::MarkBitFrom(object))) { - heap->mark_compact_collector()->marking_deque()->UnshiftGrey(object); + heap->mark_compact_collector()->marking_deque()->Unshift(object); } else { DCHECK(Marking::IsBlack(Marking::MarkBitFrom(object))); heap->mark_compact_collector()->UnshiftBlack(object); diff --git a/src/heap/mark-compact-inl.h b/src/heap/mark-compact-inl.h index bcb133eff1..37a0f88fda 100644 --- a/src/heap/mark-compact-inl.h +++ b/src/heap/mark-compact-inl.h @@ -23,7 +23,8 @@ void MarkCompactCollector::SetFlags(int flags) { void MarkCompactCollector::PushBlack(HeapObject* obj) { - if (marking_deque_.PushBlack(obj)) { + DCHECK(Marking::IsBlack(Marking::MarkBitFrom(obj))); + if (marking_deque_.Push(obj)) { MemoryChunk::IncrementLiveBytesFromGC(obj, obj->Size()); } else { Marking::BlackToGrey(obj); @@ -32,7 +33,8 @@ void MarkCompactCollector::PushBlack(HeapObject* obj) { void MarkCompactCollector::UnshiftBlack(HeapObject* obj) { - if (!marking_deque_.UnshiftBlack(obj)) { + DCHECK(Marking::IsBlack(Marking::MarkBitFrom(obj))); + if (!marking_deque_.Unshift(obj)) { MemoryChunk::IncrementLiveBytesFromGC(obj, -obj->Size()); Marking::BlackToGrey(obj); } diff --git a/src/heap/mark-compact.h b/src/heap/mark-compact.h index 5c320c29bb..546a2acc54 100644 --- a/src/heap/mark-compact.h +++ b/src/heap/mark-compact.h @@ -205,9 +205,9 @@ class MarkingDeque { void SetOverflowed() { overflowed_ = true; } - // Push the (marked) object on the marking stack if there is room, otherwise - // mark the deque as overflowed and wait for a rescan of the heap. - INLINE(bool PushBlack(HeapObject* object)) { + // Push the object on the marking stack if there is room, otherwise mark the + // deque as overflowed and wait for a rescan of the heap. + INLINE(bool Push(HeapObject* object)) { DCHECK(object->IsHeapObject()); if (IsFull()) { SetOverflowed(); @@ -219,16 +219,6 @@ class MarkingDeque { } } - INLINE(void PushGrey(HeapObject* object)) { - DCHECK(object->IsHeapObject()); - if (IsFull()) { - SetOverflowed(); - } else { - array_[top_] = object; - top_ = ((top_ + 1) & mask_); - } - } - INLINE(HeapObject* Pop()) { DCHECK(!IsEmpty()); top_ = ((top_ - 1) & mask_); @@ -237,19 +227,10 @@ class MarkingDeque { return object; } - INLINE(void UnshiftGrey(HeapObject* object)) { + // Unshift the object into the marking stack if there is room, otherwise mark + // the deque as overflowed and wait for a rescan of the heap. + INLINE(bool Unshift(HeapObject* object)) { DCHECK(object->IsHeapObject()); - if (IsFull()) { - SetOverflowed(); - } else { - bottom_ = ((bottom_ - 1) & mask_); - array_[bottom_] = object; - } - } - - INLINE(bool UnshiftBlack(HeapObject* object)) { - DCHECK(object->IsHeapObject()); - DCHECK(Marking::IsBlack(Marking::MarkBitFrom(object))); if (IsFull()) { SetOverflowed(); return false; diff --git a/test/cctest/test-mark-compact.cc b/test/cctest/test-mark-compact.cc index d54e0afd83..73369d29e5 100644 --- a/test/cctest/test-mark-compact.cc +++ b/test/cctest/test-mark-compact.cc @@ -59,7 +59,7 @@ TEST(MarkingDeque) { Address original_address = reinterpret_cast
(&s); Address current_address = original_address; while (!s.IsFull()) { - s.PushBlack(HeapObject::FromAddress(current_address)); + s.Push(HeapObject::FromAddress(current_address)); current_address += kPointerSize; }