| Index: src/heap/incremental-marking.h
|
| diff --git a/src/heap/incremental-marking.h b/src/heap/incremental-marking.h
|
| index 37f1e5cec114df144e2164925758ee5d45f20d46..19fa546edcf689fdd8663ab9fb9cc1532dd416c5 100644
|
| --- a/src/heap/incremental-marking.h
|
| +++ b/src/heap/incremental-marking.h
|
| @@ -185,26 +185,19 @@ class V8_EXPORT_PRIVATE IncrementalMarking {
|
|
|
| static void TransferMark(Heap* heap, HeapObject* from, HeapObject* to);
|
|
|
| - // Returns true if the color transfer requires live bytes updating.
|
| - INLINE(static bool TransferColor(HeapObject* from, HeapObject* to,
|
| + INLINE(static void TransferColor(HeapObject* from, HeapObject* to,
|
| int size)) {
|
| - MarkBit from_mark_bit = ObjectMarking::MarkBitFrom(from);
|
| - MarkBit to_mark_bit = ObjectMarking::MarkBitFrom(to);
|
| -
|
| - if (Marking::IsBlack(to_mark_bit)) {
|
| + if (ObjectMarking::IsBlack(to)) {
|
| DCHECK(to->GetHeap()->incremental_marking()->black_allocation());
|
| - return false;
|
| + return;
|
| }
|
|
|
| - DCHECK(Marking::IsWhite(to_mark_bit));
|
| - if (from_mark_bit.Get()) {
|
| - to_mark_bit.Set();
|
| - if (from_mark_bit.Next().Get()) {
|
| - to_mark_bit.Next().Set();
|
| - return true;
|
| - }
|
| + DCHECK(ObjectMarking::IsWhite(to));
|
| + if (ObjectMarking::IsGrey(from)) {
|
| + ObjectMarking::WhiteToGrey(to);
|
| + } else if (ObjectMarking::IsBlack(from)) {
|
| + ObjectMarking::WhiteToBlack(to);
|
| }
|
| - return false;
|
| }
|
|
|
| void IterateBlackObject(HeapObject* object);
|
|
|