diff options
author | 2019-05-28 16:39:29 +0100 | |
---|---|---|
committer | 2019-05-31 14:15:59 +0000 | |
commit | 3068d582eff4552ff260d7966fcbdc93e17d0207 (patch) | |
tree | bc894a414070a06ea2a231fb98607b57b8c3b0cb /runtime/native/java_lang_Class.cc | |
parent | 991cd5cc16267b74e390f640eb441102062babb6 (diff) |
Clean up creating handles from `this`.
Make these member functions static and take an additional
parameter `Handle<.> h_this`. Callers mostly already have
a Handle<> to pass, so we avoid an extra StackHandleScope.
This pattern was already used for some functions.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing --interpreter
Change-Id: I4f4478b0526bcb2f3c23305d3b3cc4a65fff9ff5
Diffstat (limited to 'runtime/native/java_lang_Class.cc')
-rw-r--r-- | runtime/native/java_lang_Class.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/runtime/native/java_lang_Class.cc b/runtime/native/java_lang_Class.cc index f69d1bc66c..4967f9eebe 100644 --- a/runtime/native/java_lang_Class.cc +++ b/runtime/native/java_lang_Class.cc @@ -220,7 +220,11 @@ static jobjectArray Class_getInterfacesInternal(JNIEnv* env, jobject javaThis) { Handle<mirror::Class> klass = hs.NewHandle(DecodeClass(soa, javaThis)); if (klass->IsProxyClass()) { - return soa.AddLocalReference<jobjectArray>(klass->GetProxyInterfaces()->Clone(soa.Self())); + StackHandleScope<1> hs2(soa.Self()); + Handle<mirror::ObjectArray<mirror::Class>> interfaces = + hs2.NewHandle(klass->GetProxyInterfaces()); + return soa.AddLocalReference<jobjectArray>( + mirror::ObjectArray<mirror::Class>::Clone(interfaces, soa.Self())); } const dex::TypeList* iface_list = klass->GetInterfaceTypeList(); |