[vm, gc] Fix scavenger deleting heap sampler entries for collected objects.

TEST=lsan
Bug: https://github.com/dart-lang/sdk/issues/52029
Change-Id: I4ea03a4b5cead076547423ff5dedc4b988e5111d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/295160
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
This commit is contained in:
Ryan Macnak
2023-04-13 23:17:47 +00:00
committed by Commit Queue
parent c618771744
commit d6abb7b89a
+5 -5
View File
@@ -1432,11 +1432,11 @@ void Scavenger::MournWeakTables() {
auto replacement =
raw_obj->IsNewObject() ? replacement_new : replacement_old;
replacement->SetValueExclusive(raw_obj, table->ValueAtExclusive(i));
}
} else {
// The object has been collected.
if (cleanup != nullptr) {
cleanup(reinterpret_cast<void*>(table->ValueAtExclusive(i)));
} else {
// The object has been collected.
if (cleanup != nullptr) {
cleanup(reinterpret_cast<void*>(table->ValueAtExclusive(i)));
}
}
}
}