[heap] host object is always non-null in PrepareRecordRelocSlot

Bug: v8:11708
Change-Id: I83c9559bb2aee062a53c1d67c293b8f6654c7d99
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3400965
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Auto-Submit: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78683}
This commit is contained in:
Dominik Inführ 2022-01-19 15:09:38 +01:00 committed by V8 LUCI CQ
parent 19c6fd7351
commit 0c4a512d06

View File

@ -2950,13 +2950,14 @@ bool MarkCompactCollector::IsOnEvacuationCandidate(MaybeObject obj) {
MarkCompactCollector::RecordRelocSlotInfo
MarkCompactCollector::PrepareRecordRelocSlot(Code host, RelocInfo* rinfo,
HeapObject target) {
DCHECK_EQ(host, rinfo->host());
RecordRelocSlotInfo result;
result.should_record = false;
Page* target_page = Page::FromHeapObject(target);
Page* source_page = Page::FromHeapObject(host);
if (target_page->IsEvacuationCandidate() &&
(rinfo->host().is_null() ||
!source_page->ShouldSkipEvacuationSlotRecording())) {
!source_page->ShouldSkipEvacuationSlotRecording()) {
RelocInfo::Mode rmode = rinfo->rmode();
Address addr = rinfo->pc();
SlotType slot_type = SlotTypeForRelocInfoMode(rmode);