diff options
Diffstat (limited to 'deps/v8/src/incremental-marking-inl.h')
-rw-r--r-- | deps/v8/src/incremental-marking-inl.h | 27 |
1 files changed, 6 insertions, 21 deletions
diff --git a/deps/v8/src/incremental-marking-inl.h b/deps/v8/src/incremental-marking-inl.h index 1c30383d5..bbe9a9d20 100644 --- a/deps/v8/src/incremental-marking-inl.h +++ b/deps/v8/src/incremental-marking-inl.h @@ -37,27 +37,16 @@ namespace internal { bool IncrementalMarking::BaseRecordWrite(HeapObject* obj, Object** slot, Object* value) { - HeapObject* value_heap_obj = HeapObject::cast(value); - MarkBit value_bit = Marking::MarkBitFrom(value_heap_obj); + MarkBit value_bit = Marking::MarkBitFrom(HeapObject::cast(value)); if (Marking::IsWhite(value_bit)) { MarkBit obj_bit = Marking::MarkBitFrom(obj); if (Marking::IsBlack(obj_bit)) { - MemoryChunk* chunk = MemoryChunk::FromAddress(obj->address()); - if (chunk->IsFlagSet(MemoryChunk::HAS_PROGRESS_BAR)) { - if (chunk->IsLeftOfProgressBar(slot)) { - WhiteToGreyAndPush(value_heap_obj, value_bit); - RestartIfNotMarking(); - } else { - return false; - } - } else { - BlackToGreyAndUnshift(obj, obj_bit); - RestartIfNotMarking(); - return false; - } - } else { - return false; + BlackToGreyAndUnshift(obj, obj_bit); + RestartIfNotMarking(); } + + // Object is either grey or white. It will be scanned if survives. + return false; } if (!is_compacting_) return false; MarkBit obj_bit = Marking::MarkBitFrom(obj); @@ -94,10 +83,6 @@ 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(); } |