| Index: src/heap/incremental-marking.cc
|
| diff --git a/src/heap/incremental-marking.cc b/src/heap/incremental-marking.cc
|
| index 85494ce22170763cd402a5e27b15234fa629a29b..52a3f058ffa02fde5a55ae0e6621d748d03e9538 100644
|
| --- a/src/heap/incremental-marking.cc
|
| +++ b/src/heap/incremental-marking.cc
|
| @@ -141,52 +141,6 @@ void IncrementalMarking::RecordWriteIntoCodeSlow(Code* host, RelocInfo* rinfo,
|
| }
|
|
|
|
|
| -void IncrementalMarking::RecordWrites(HeapObject* obj) {
|
| - if (IsMarking()) {
|
| - MarkBit obj_bit = Marking::MarkBitFrom(obj);
|
| - if (Marking::IsBlack(obj_bit)) {
|
| - MemoryChunk* chunk = MemoryChunk::FromAddress(obj->address());
|
| - if (chunk->IsFlagSet(MemoryChunk::HAS_PROGRESS_BAR)) {
|
| - chunk->set_progress_bar(0);
|
| - }
|
| - BlackToGreyAndUnshift(obj, obj_bit);
|
| - RestartIfNotMarking();
|
| - }
|
| - }
|
| -}
|
| -
|
| -
|
| -void IncrementalMarking::BlackToGreyAndUnshift(HeapObject* obj,
|
| - MarkBit mark_bit) {
|
| - DCHECK(Marking::MarkBitFrom(obj) == mark_bit);
|
| - DCHECK(obj->Size() >= 2 * kPointerSize);
|
| - DCHECK(IsMarking());
|
| - Marking::BlackToGrey(mark_bit);
|
| - int obj_size = obj->Size();
|
| - MemoryChunk::IncrementLiveBytesFromGC(obj, -obj_size);
|
| - bytes_scanned_ -= obj_size;
|
| - int64_t old_bytes_rescanned = bytes_rescanned_;
|
| - bytes_rescanned_ = old_bytes_rescanned + obj_size;
|
| - if ((bytes_rescanned_ >> 20) != (old_bytes_rescanned >> 20)) {
|
| - if (bytes_rescanned_ > 2 * heap_->PromotedSpaceSizeOfObjects()) {
|
| - // If we have queued twice the heap size for rescanning then we are
|
| - // going around in circles, scanning the same objects again and again
|
| - // as the program mutates the heap faster than we can incrementally
|
| - // trace it. In this case we switch to non-incremental marking in
|
| - // order to finish off this marking phase.
|
| - if (FLAG_trace_incremental_marking) {
|
| - PrintIsolate(
|
| - heap()->isolate(),
|
| - "Hurrying incremental marking because of lack of progress\n");
|
| - }
|
| - marking_speed_ = kMaxMarkingSpeed;
|
| - }
|
| - }
|
| -
|
| - 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()->Push(obj);
|
| @@ -323,8 +277,7 @@ class IncrementalMarkingMarkingVisitor
|
| };
|
|
|
| void IncrementalMarking::IterateBlackObject(HeapObject* object) {
|
| - if (black_allocation() &&
|
| - Page::FromAddress(object->address())->IsFlagSet(Page::BLACK_PAGE)) {
|
| + if (IsMarking() && Marking::IsBlack(Marking::MarkBitFrom(object))) {
|
| IncrementalMarkingMarkingVisitor::IterateBody(object->map(), object);
|
| }
|
| }
|
|
|