Lines Matching refs:res_method

3250   ArtMethod* res_method = dex_cache_->GetResolvedMethod(dex_method_idx, pointer_size);  in ResolveMethodAndCheckAccess()  local
3251 if (res_method == nullptr) { in ResolveMethodAndCheckAccess()
3256 res_method = klass->FindDirectMethod(name, signature, pointer_size); in ResolveMethodAndCheckAccess()
3258 res_method = klass->FindInterfaceMethod(name, signature, pointer_size); in ResolveMethodAndCheckAccess()
3260 res_method = klass->FindVirtualMethod(name, signature, pointer_size); in ResolveMethodAndCheckAccess()
3262 if (res_method != nullptr) { in ResolveMethodAndCheckAccess()
3263 dex_cache_->SetResolvedMethod(dex_method_idx, res_method, pointer_size); in ResolveMethodAndCheckAccess()
3269 res_method = klass->FindDirectMethod(name, signature, pointer_size); in ResolveMethodAndCheckAccess()
3271 if (res_method == nullptr) { in ResolveMethodAndCheckAccess()
3281 if (res_method->IsConstructor() && method_type != METHOD_DIRECT) { in ResolveMethodAndCheckAccess()
3283 << PrettyMethod(res_method); in ResolveMethodAndCheckAccess()
3287 if (res_method->IsClassInitializer()) { in ResolveMethodAndCheckAccess()
3289 << PrettyMethod(res_method); in ResolveMethodAndCheckAccess()
3293 if (!referrer.CanAccessMember(res_method->GetDeclaringClass(), res_method->GetAccessFlags())) { in ResolveMethodAndCheckAccess()
3294 Fail(VERIFY_ERROR_ACCESS_METHOD) << "illegal method access (call " << PrettyMethod(res_method) in ResolveMethodAndCheckAccess()
3296 return res_method; in ResolveMethodAndCheckAccess()
3299 if (res_method->IsPrivate() && method_type == METHOD_VIRTUAL) { in ResolveMethodAndCheckAccess()
3301 << PrettyMethod(res_method); in ResolveMethodAndCheckAccess()
3306 Fail(VERIFY_ERROR_CLASS_CHANGE) << "non-interface method " << PrettyMethod(res_method) in ResolveMethodAndCheckAccess()
3310 Fail(VERIFY_ERROR_CLASS_CHANGE) << "interface method " << PrettyMethod(res_method) in ResolveMethodAndCheckAccess()
3316 if ((method_type == METHOD_DIRECT && (!res_method->IsDirect() || res_method->IsStatic())) || in ResolveMethodAndCheckAccess()
3317 (method_type == METHOD_STATIC && !res_method->IsStatic()) || in ResolveMethodAndCheckAccess()
3318 ((method_type == METHOD_VIRTUAL || method_type == METHOD_INTERFACE) && res_method->IsDirect()) in ResolveMethodAndCheckAccess()
3321 " type of " << PrettyMethod(res_method); in ResolveMethodAndCheckAccess()
3324 return res_method; in ResolveMethodAndCheckAccess()
3329 T* it, const Instruction* inst, MethodType method_type, bool is_range, ArtMethod* res_method) { in VerifyInvocationArgsFromIterator() argument
3360 if (res_method) { in VerifyInvocationArgsFromIterator()
3361 if (!res_method->IsConstructor()) { in VerifyInvocationArgsFromIterator()
3376 if (res_method != nullptr) { in VerifyInvocationArgsFromIterator()
3377 mirror::Class* klass = res_method->GetDeclaringClass(); in VerifyInvocationArgsFromIterator()
3441 return res_method; in VerifyInvocationArgsFromIterator()
3459 explicit MethodParamListDescriptorIterator(ArtMethod* res_method) : in MethodParamListDescriptorIterator() argument
3460 res_method_(res_method), pos_(0), params_(res_method->GetParameterTypeList()), in MethodParamListDescriptorIterator()
3489 ArtMethod* res_method = ResolveMethodAndCheckAccess(method_idx, method_type); in VerifyInvocationArgs() local
3490 if (res_method == nullptr) { // error or class is unresolved in VerifyInvocationArgs()
3506 << " to super " << PrettyMethod(res_method); in VerifyInvocationArgs()
3510 if (res_method->GetMethodIndex() >= super_klass->GetVTableLength()) { in VerifyInvocationArgs()
3514 << "." << res_method->GetName() in VerifyInvocationArgs()
3515 << res_method->GetSignature(); in VerifyInvocationArgs()
3521 MethodParamListDescriptorIterator it(res_method); in VerifyInvocationArgs()
3523 is_range, res_method); in VerifyInvocationArgs()
3565 ArtMethod* res_method = dispatch_class->GetVTableEntry(vtable_index, pointer_size); in GetQuickInvokedMethod() local
3571 return res_method; in GetQuickInvokedMethod()
3578 ArtMethod* res_method = GetQuickInvokedMethod(inst, work_line_.get(), is_range, false); in VerifyInvokeVirtualQuickArgs() local
3579 if (res_method == nullptr) { in VerifyInvokeVirtualQuickArgs()
3583 if (FailOrAbort(this, !res_method->IsDirect(), "Quick-invoked method is direct at ", in VerifyInvokeVirtualQuickArgs()
3587 if (FailOrAbort(this, !res_method->IsStatic(), "Quick-invoked method is static at ", in VerifyInvokeVirtualQuickArgs()
3613 if (actual_arg_type.IsUninitializedReference() && !res_method->IsConstructor()) { in VerifyInvokeVirtualQuickArgs()
3618 mirror::Class* klass = res_method->GetDeclaringClass(); in VerifyInvokeVirtualQuickArgs()
3633 const DexFile::TypeList* params = res_method->GetParameterTypeList(); in VerifyInvokeVirtualQuickArgs()
3642 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Rejecting invalid call to '" << PrettyMethod(res_method) in VerifyInvokeVirtualQuickArgs()
3649 res_method->GetTypeDescriptorFromTypeIdx(params->GetTypeItem(param_index).type_idx_); in VerifyInvokeVirtualQuickArgs()
3651 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Rejecting invocation of " << PrettyMethod(res_method) in VerifyInvokeVirtualQuickArgs()
3658 return res_method; in VerifyInvokeVirtualQuickArgs()
3663 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Rejecting invocation of " << PrettyMethod(res_method) in VerifyInvokeVirtualQuickArgs()
3667 return res_method; in VerifyInvokeVirtualQuickArgs()