diff options
author | Mathieu Chartier <mathieuc@google.com> | 2014-11-17 18:52:59 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-11-17 18:52:59 +0000 |
commit | d3a23885d613a60efebb529f18df53cabc34f9ba (patch) | |
tree | feb74327b656f4f2d8fcc9a6da54f1f44b6b9798 /runtime/jni_internal.cc | |
parent | 4bad3c057ebba4e8addd6c0467f0106d9a9e99e8 (diff) | |
parent | 7210368d367e57aaa8d78a36048c36f8f588a85c (diff) | |
download | art-d3a23885d613a60efebb529f18df53cabc34f9ba.tar.gz art-d3a23885d613a60efebb529f18df53cabc34f9ba.tar.bz2 art-d3a23885d613a60efebb529f18df53cabc34f9ba.zip |
am 7210368d: am 825365c5: Merge "Fix reference leaks in ToReflectedMethod and ToReflectedField"
* commit '7210368d367e57aaa8d78a36048c36f8f588a85c':
Fix reference leaks in ToReflectedMethod and ToReflectedField
Diffstat (limited to 'runtime/jni_internal.cc')
-rw-r--r-- | runtime/jni_internal.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/runtime/jni_internal.cc b/runtime/jni_internal.cc index 67e52cbef9..b62634fa20 100644 --- a/runtime/jni_internal.cc +++ b/runtime/jni_internal.cc @@ -359,7 +359,7 @@ class JNI { ScopedObjectAccess soa(env); mirror::ArtMethod* m = soa.DecodeMethod(mid); CHECK(!kMovingMethods); - jobject art_method = soa.AddLocalReference<jobject>(m); + ScopedLocalRef<jobject> art_method(env, soa.AddLocalReference<jobject>(m)); jobject reflect_method; if (m->IsConstructor()) { reflect_method = env->AllocObject(WellKnownClasses::java_lang_reflect_Constructor); @@ -370,7 +370,7 @@ class JNI { return nullptr; } SetObjectField(env, reflect_method, - WellKnownClasses::java_lang_reflect_AbstractMethod_artMethod, art_method); + WellKnownClasses::java_lang_reflect_AbstractMethod_artMethod, art_method.get()); return reflect_method; } @@ -378,13 +378,13 @@ class JNI { CHECK_NON_NULL_ARGUMENT(fid); ScopedObjectAccess soa(env); mirror::ArtField* f = soa.DecodeField(fid); - jobject art_field = soa.AddLocalReference<jobject>(f); + ScopedLocalRef<jobject> art_field(env, soa.AddLocalReference<jobject>(f)); jobject reflect_field = env->AllocObject(WellKnownClasses::java_lang_reflect_Field); if (env->ExceptionCheck()) { return nullptr; } SetObjectField(env, reflect_field, - WellKnownClasses::java_lang_reflect_Field_artField, art_field); + WellKnownClasses::java_lang_reflect_Field_artField, art_field.get()); return reflect_field; } |