diff options
author | 2015-12-15 15:02:47 -0800 | |
---|---|---|
committer | 2015-12-16 14:16:31 -0800 | |
commit | e64300b8488716056775ecbfa2915dd1b4ce7e08 (patch) | |
tree | be23a7086c1e369527dda5450a9868f2d29c5669 /runtime/native/java_lang_Class.cc | |
parent | bc90a0538e56f98b8e138cb622e6b9d834244ad9 (diff) |
Revert "Revert "Combine direct_methods_ and virtual_methods_ fields of mirror::Class""
This reverts commit ae358c1d5cef227b44d6f4971b79e1ab91aa26eb.
Bug: 24618811
Change-Id: I8becf9bae3258450b90cfef5e79589db7c535a4d
Diffstat (limited to 'runtime/native/java_lang_Class.cc')
-rw-r--r-- | runtime/native/java_lang_Class.cc | 26 |
1 files changed, 3 insertions, 23 deletions
diff --git a/runtime/native/java_lang_Class.cc b/runtime/native/java_lang_Class.cc index 5e423920c0..14d284e003 100644 --- a/runtime/native/java_lang_Class.cc +++ b/runtime/native/java_lang_Class.cc @@ -439,16 +439,9 @@ static jobjectArray Class_getDeclaredMethodsUnchecked(JNIEnv* env, jobject javaT StackHandleScope<2> hs(soa.Self()); Handle<mirror::Class> klass = hs.NewHandle(DecodeClass(soa, javaThis)); size_t num_methods = 0; - for (auto& m : klass->GetVirtualMethods(sizeof(void*))) { + for (auto& m : klass->GetDeclaredMethods(sizeof(void*))) { auto modifiers = m.GetAccessFlags(); - if ((publicOnly == JNI_FALSE || (modifiers & kAccPublic) != 0) && - (modifiers & kAccMiranda) == 0) { - ++num_methods; - } - } - for (auto& m : klass->GetDirectMethods(sizeof(void*))) { - auto modifiers = m.GetAccessFlags(); - // Add non-constructor direct/static methods. + // Add non-constructor declared methods. if ((publicOnly == JNI_FALSE || (modifiers & kAccPublic) != 0) && (modifiers & kAccConstructor) == 0) { ++num_methods; @@ -457,21 +450,8 @@ static jobjectArray Class_getDeclaredMethodsUnchecked(JNIEnv* env, jobject javaT auto ret = hs.NewHandle(mirror::ObjectArray<mirror::Method>::Alloc( soa.Self(), mirror::Method::ArrayClass(), num_methods)); num_methods = 0; - for (auto& m : klass->GetVirtualMethods(sizeof(void*))) { - auto modifiers = m.GetAccessFlags(); - if ((publicOnly == JNI_FALSE || (modifiers & kAccPublic) != 0) && - (modifiers & kAccMiranda) == 0) { - auto* method = mirror::Method::CreateFromArtMethod(soa.Self(), &m); - if (method == nullptr) { - soa.Self()->AssertPendingException(); - return nullptr; - } - ret->SetWithoutChecks<false>(num_methods++, method); - } - } - for (auto& m : klass->GetDirectMethods(sizeof(void*))) { + for (auto& m : klass->GetDeclaredMethods(sizeof(void*))) { auto modifiers = m.GetAccessFlags(); - // Add non-constructor direct/static methods. if ((publicOnly == JNI_FALSE || (modifiers & kAccPublic) != 0) && (modifiers & kAccConstructor) == 0) { auto* method = mirror::Method::CreateFromArtMethod(soa.Self(), &m); |