[VM/Coverage] Fix memory leak in coverage code.
TEST=ci (existing test which was failing and should pass now)
Bug:51209
Change-Id: Ia156200af2b1271677f0a8ff576998b255adc964
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/280600
Commit-Queue: Siva Annamalai <asiva@google.com>
Reviewed-by: Liam Appelbe <liama@google.com>
diff --git a/runtime/vm/source_report.cc b/runtime/vm/source_report.cc
index 3b6d4c3..737a9a8 100644
--- a/runtime/vm/source_report.cc
+++ b/runtime/vm/source_report.cc
@@ -55,12 +55,20 @@
}
void SourceReport::ClearScriptTable() {
+ // Delete entries from script_table_ as it has the unfiltered list.
+ DirectChainedHashMap<ScriptTableTrait>::Iterator iter =
+ script_table_.GetIterator();
+ ScriptTableTrait::Pair* pair;
+ while ((pair = iter.Next()) != nullptr) {
+ delete ScriptTableTrait::ValueOf(*pair);
+ }
+ script_table_.Clear();
+
for (intptr_t i = 0; i < script_table_entries_.length(); i++) {
- delete script_table_entries_[i];
script_table_entries_[i] = NULL;
}
script_table_entries_.Clear();
- script_table_.Clear();
+
next_script_index_ = 0;
}