[heap] Release invalidates slots set in MinorMC.
Bug: v8:12612, chromium:1411746 Change-Id: I6c06e6c924f9f548cb2014172d467ed19a5abbc5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4208940 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#85605}
This commit is contained in:
parent
a5eb40d90d
commit
806edfa6ea
@ -4173,10 +4173,6 @@ void VerifyRememberedSetsAfterEvacuation(Heap* heap,
|
||||
|
||||
// GCs need to filter invalidated slots.
|
||||
DCHECK_NULL(chunk->invalidated_slots<OLD_TO_OLD>());
|
||||
// TODO(v8:12612): This DCHECK holds for MinorMC because MinorMC doesn't use
|
||||
// incremental/concurrent marking, and thus it is not possible to allocate
|
||||
// an invalidated slots set during MinorMC. This will likely break once
|
||||
// MinorMC marks concurrently.
|
||||
DCHECK_NULL(chunk->invalidated_slots<OLD_TO_NEW>());
|
||||
if (collector == GarbageCollector::MARK_COMPACTOR) {
|
||||
DCHECK_NULL(chunk->invalidated_slots<OLD_TO_SHARED>());
|
||||
@ -6149,6 +6145,9 @@ void PageMarkingItem::MarkUntypedPointers(YoungGenerationMarkingTask* task) {
|
||||
return CheckAndMarkObject(task, slot);
|
||||
},
|
||||
SlotSet::FREE_EMPTY_BUCKETS);
|
||||
// The invalidated slots are not needed after old-to-new slots were
|
||||
// processed.
|
||||
chunk_->ReleaseInvalidatedSlots<OLD_TO_NEW>();
|
||||
}
|
||||
|
||||
void PageMarkingItem::MarkTypedPointers(YoungGenerationMarkingTask* task) {
|
||||
|
Loading…
Reference in New Issue
Block a user