summaryrefslogtreecommitdiffstats
path: root/runtime/jni_internal.cc
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2014-11-17 18:52:59 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-11-17 18:52:59 +0000
commitd3a23885d613a60efebb529f18df53cabc34f9ba (patch)
treefeb74327b656f4f2d8fcc9a6da54f1f44b6b9798 /runtime/jni_internal.cc
parent4bad3c057ebba4e8addd6c0467f0106d9a9e99e8 (diff)
parent7210368d367e57aaa8d78a36048c36f8f588a85c (diff)
downloadart-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.cc8
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;
}