diff options
author | Sebastien Hertz <shertz@google.com> | 2014-06-26 06:49:48 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-06-24 06:33:30 +0000 |
commit | 0c1734665c38b3116e38a90ad06c3f152d9316c5 (patch) | |
tree | a78ea10185f8d09a93930c6c7ce37bedad2e9abd | |
parent | 8803c1cb633de1b0e0a48ffea30ddd8fac201a0e (diff) | |
parent | a032870e19e4a6c8d62b7dab806261006fa711ee (diff) | |
download | art-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.cc | 9 |
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(); |