diff options
Diffstat (limited to 'deps/v8/src/heap/incremental-marking-inl.h')
-rw-r--r-- | deps/v8/src/heap/incremental-marking-inl.h | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/deps/v8/src/heap/incremental-marking-inl.h b/deps/v8/src/heap/incremental-marking-inl.h index e19d62f4d4..7df67d3d27 100644 --- a/deps/v8/src/heap/incremental-marking-inl.h +++ b/deps/v8/src/heap/incremental-marking-inl.h @@ -15,7 +15,7 @@ namespace v8 { namespace internal { -void IncrementalMarking::TransferColor(HeapObject* from, HeapObject* to) { +void IncrementalMarking::TransferColor(HeapObject from, HeapObject to) { if (atomic_marking_state()->IsBlack(to)) { DCHECK(black_allocation()); return; @@ -33,25 +33,23 @@ void IncrementalMarking::TransferColor(HeapObject* from, HeapObject* to) { } } -void IncrementalMarking::RecordWrite(HeapObject* obj, Object** slot, - Object* value) { - DCHECK_IMPLIES(slot != nullptr, !HasWeakHeapObjectTag(*slot)); +void IncrementalMarking::RecordWrite(HeapObject obj, ObjectSlot slot, + Object value) { + DCHECK_IMPLIES(slot.address() != kNullAddress, !HasWeakHeapObjectTag(*slot)); DCHECK(!HasWeakHeapObjectTag(value)); if (IsMarking() && value->IsHeapObject()) { - RecordWriteSlow(obj, reinterpret_cast<HeapObjectReference**>(slot), - HeapObject::cast(value)); + RecordWriteSlow(obj, HeapObjectSlot(slot), HeapObject::cast(value)); } } -void IncrementalMarking::RecordMaybeWeakWrite(HeapObject* obj, - MaybeObject** slot, - MaybeObject* value) { +void IncrementalMarking::RecordMaybeWeakWrite(HeapObject obj, + MaybeObjectSlot slot, + MaybeObject value) { // When writing a weak reference, treat it as strong for the purposes of the // marking barrier. - HeapObject* heap_object; + HeapObject heap_object; if (IsMarking() && value->GetHeapObject(&heap_object)) { - RecordWriteSlow(obj, reinterpret_cast<HeapObjectReference**>(slot), - heap_object); + RecordWriteSlow(obj, HeapObjectSlot(slot), heap_object); } } |