Index: src/heap/mark-compact.cc |
diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc |
index 5cf89e741f8c6732d8db79f7cf34da23660063d8..dd3be110068e5a7813aef8732681a8f1b8f6eb11 100644 |
--- a/src/heap/mark-compact.cc |
+++ b/src/heap/mark-compact.cc |
@@ -1553,7 +1553,8 @@ class RecordMigratedSlotVisitor final : public ObjectVisitor { |
Address code_entry = Memory::Address_at(code_entry_slot); |
if (Page::FromAddress(code_entry)->IsEvacuationCandidate()) { |
RememberedSet<OLD_TO_OLD>::InsertTyped(Page::FromAddress(code_entry_slot), |
- CODE_ENTRY_SLOT, code_entry_slot); |
+ nullptr, CODE_ENTRY_SLOT, |
+ code_entry_slot); |
} |
} |
@@ -2824,7 +2825,8 @@ void MarkCompactCollector::RecordRelocSlot(Code* host, RelocInfo* rinfo, |
slot_type = OBJECT_SLOT; |
} |
} |
- RememberedSet<OLD_TO_OLD>::InsertTyped(source_page, slot_type, addr); |
+ RememberedSet<OLD_TO_OLD>::InsertTyped( |
+ source_page, reinterpret_cast<Address>(host), slot_type, addr); |
} |
} |
@@ -3605,14 +3607,15 @@ class PointerUpdateJobTraits { |
if (direction == OLD_TO_OLD) { |
Isolate* isolate = heap->isolate(); |
RememberedSet<OLD_TO_OLD>::IterateTyped( |
- chunk, [isolate](SlotType type, Address slot) { |
+ chunk, [isolate](SlotType type, Address host_addr, Address slot) { |
return UpdateTypedSlotHelper::UpdateTypedSlot(isolate, type, slot, |
UpdateSlot); |
}); |
} else { |
Isolate* isolate = heap->isolate(); |
RememberedSet<OLD_TO_NEW>::IterateTyped( |
- chunk, [isolate, heap](SlotType type, Address slot) { |
+ chunk, |
+ [isolate, heap](SlotType type, Address host_addr, Address slot) { |
return UpdateTypedSlotHelper::UpdateTypedSlot( |
isolate, type, slot, [heap](Object** slot) { |
return CheckAndUpdateOldToNewSlot( |
@@ -3967,7 +3970,8 @@ void MarkCompactCollector::RecordCodeEntrySlot(HeapObject* host, Address slot, |
!ShouldSkipEvacuationSlotRecording(host)) { |
// TODO(ulan): remove this check after investigating crbug.com/414964. |
CHECK(target->IsCode()); |
- RememberedSet<OLD_TO_OLD>::InsertTyped(source_page, CODE_ENTRY_SLOT, slot); |
+ RememberedSet<OLD_TO_OLD>::InsertTyped( |
+ source_page, reinterpret_cast<Address>(host), CODE_ENTRY_SLOT, slot); |
} |
} |