[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:
committed by
Commit Queue
parent
c618771744
commit
d6abb7b89a
@@ -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)));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user