From 3068d582eff4552ff260d7966fcbdc93e17d0207 Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Tue, 28 May 2019 16:39:29 +0100 Subject: 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 --- runtime/native/java_lang_Class.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'runtime/native/java_lang_Class.cc') 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 klass = hs.NewHandle(DecodeClass(soa, javaThis)); if (klass->IsProxyClass()) { - return soa.AddLocalReference(klass->GetProxyInterfaces()->Clone(soa.Self())); + StackHandleScope<1> hs2(soa.Self()); + Handle> interfaces = + hs2.NewHandle(klass->GetProxyInterfaces()); + return soa.AddLocalReference( + mirror::ObjectArray::Clone(interfaces, soa.Self())); } const dex::TypeList* iface_list = klass->GetInterfaceTypeList(); -- cgit v1.2.3-59-g8ed1b