Chromium Code Reviews| Index: src/heap/incremental-marking.cc |
| diff --git a/src/heap/incremental-marking.cc b/src/heap/incremental-marking.cc |
| index 4fc68ecc0f14903b886488bfd26e4a760e01c04f..835c5ceb7430f9d04cb4594a46286252d58a91bc 100644 |
| --- a/src/heap/incremental-marking.cc |
| +++ b/src/heap/incremental-marking.cc |
| @@ -164,9 +164,7 @@ void IncrementalMarking::TransferMark(Heap* heap, Address old_start, |
| DCHECK(MemoryChunk::FromAddress(old_start) == |
| MemoryChunk::FromAddress(new_start)); |
| - if (!heap->incremental_marking()->IsMarking() || |
| - Page::FromAddress(old_start)->IsFlagSet(Page::BLACK_PAGE)) |
| - return; |
| + if (!heap->incremental_marking()->IsMarking()) return; |
| // If the mark doesn't move, we don't check the color of the object. |
| // It doesn't matter whether the object is black, since it hasn't changed |
| @@ -602,10 +600,10 @@ void IncrementalMarking::StartMarking() { |
| void IncrementalMarking::StartBlackAllocation() { |
| DCHECK(FLAG_black_allocation); |
| DCHECK(IsMarking()); |
| + heap()->old_space()->EmptyAllocationInfo(); |
|
ulan
2016/07/19 13:23:32
Instead of dropping the linear allocation area, ho
Hannes Payer (out of office)
2016/07/19 14:42:53
I did the lazy approach. We can also mark it direc
|
| + heap()->map_space()->EmptyAllocationInfo(); |
| + heap()->code_space()->EmptyAllocationInfo(); |
| black_allocation_ = true; |
| - OldSpace* old_space = heap()->old_space(); |
| - old_space->EmptyAllocationInfo(); |
| - old_space->free_list()->Reset(); |
| if (FLAG_trace_incremental_marking) { |
| PrintF("[IncrementalMarking] Black allocation started\n"); |
| } |
| @@ -833,7 +831,7 @@ void IncrementalMarking::UpdateMarkingDequeAfterScavenge() { |
| // them. |
| if (map_word.IsForwardingAddress()) { |
| HeapObject* dest = map_word.ToForwardingAddress(); |
| - if (Page::FromAddress(dest->address())->IsFlagSet(Page::BLACK_PAGE)) |
| + if (Marking::IsBlack(ObjectMarking::MarkBitFrom(dest->address()))) |
| continue; |
| array[new_top] = dest; |
| new_top = ((new_top + 1) & mask); |