summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastien Hertz <shertz@google.com>2014-06-26 06:49:48 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-06-24 06:33:30 +0000
commit0c1734665c38b3116e38a90ad06c3f152d9316c5 (patch)
treea78ea10185f8d09a93930c6c7ce37bedad2e9abd
parent8803c1cb633de1b0e0a48ffea30ddd8fac201a0e (diff)
parenta032870e19e4a6c8d62b7dab806261006fa711ee (diff)
downloadart-0c1734665c38b3116e38a90ad06c3f152d9316c5.zip
art-0c1734665c38b3116e38a90ad06c3f152d9316c5.tar.gz
art-0c1734665c38b3116e38a90ad06c3f152d9316c5.tar.bz2
Merge "Fix memory leak in JDWP object registry"
-rw-r--r--runtime/jdwp/object_registry.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/runtime/jdwp/object_registry.cc b/runtime/jdwp/object_registry.cc
index d637a94..29d3c8a 100644
--- a/runtime/jdwp/object_registry.cc
+++ b/runtime/jdwp/object_registry.cc
@@ -115,12 +115,13 @@ void ObjectRegistry::Clear() {
// Delete all the JNI references.
JNIEnv* env = self->GetJniEnv();
for (const auto& pair : object_to_entry_) {
- const ObjectRegistryEntry& entry = *pair.second;
- if (entry.jni_reference_type == JNIWeakGlobalRefType) {
- env->DeleteWeakGlobalRef(entry.jni_reference);
+ const ObjectRegistryEntry* entry = pair.second;
+ if (entry->jni_reference_type == JNIWeakGlobalRefType) {
+ env->DeleteWeakGlobalRef(entry->jni_reference);
} else {
- env->DeleteGlobalRef(entry.jni_reference);
+ env->DeleteGlobalRef(entry->jni_reference);
}
+ delete entry;
}
// Clear the maps.
object_to_entry_.clear();