Fix memory leak in RemoveRememberedSet.
RemoveRememberedSet now deletes the remembered set.
Bug: 16532086
Change-Id: I01092931cc20cd0688dd42eed3dde9ad140889b2
diff --git a/runtime/gc/heap.cc b/runtime/gc/heap.cc
index 1b9b077..d6cf52f 100644
--- a/runtime/gc/heap.cc
+++ b/runtime/gc/heap.cc
@@ -3118,6 +3118,7 @@
CHECK(space != nullptr);
auto it = remembered_sets_.find(space);
CHECK(it != remembered_sets_.end());
+ delete it->second;
remembered_sets_.erase(it);
CHECK(remembered_sets_.find(space) == remembered_sets_.end());
}
diff --git a/runtime/gc/heap.h b/runtime/gc/heap.h
index 56c6d6d..8ffadd5 100644
--- a/runtime/gc/heap.h
+++ b/runtime/gc/heap.h
@@ -572,6 +572,7 @@
accounting::RememberedSet* FindRememberedSetFromSpace(space::Space* space);
void AddRememberedSet(accounting::RememberedSet* remembered_set);
+ // Also deletes the remebered set.
void RemoveRememberedSet(space::Space* space);
bool IsCompilingBoot() const;