[heap] Fix aborting compaction with map space compaction

When aborting compaction on a page, slots need to be recorded in the
non-evacuated part. Now that maps might be recorded as well, slots
need to be recorded in the map word as well.

Bug: chromium:1359294, v8:12578
Change-Id: I91e4a98ae2951d814d4b50e527b34d8e54d55434
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3871297
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Auto-Submit: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#82951}
This commit is contained in:
Dominik Inführ 2022-09-02 17:07:46 +02:00 committed by V8 LUCI CQ
parent bbc38834d6
commit 3ec02e314c

View File

@ -2040,7 +2040,7 @@ class EvacuateRecordOnlyVisitor final : public HeapObjectVisitor {
// Instead of calling object.IterateBodyFast(cage_base(), &visitor) here
// we can shortcut and use the precomputed size value passed to the visitor.
DCHECK_EQ(object.SizeFromMap(map), size);
object.IterateBodyFast(map, size, &visitor);
object.IterateFast(map, size, &visitor);
return true;
}