Home | History | Annotate | Download | only in verifier

Lines Matching refs:res_method

3761   ArtMethod* res_method = dex_cache_->GetResolvedMethod(dex_method_idx, pointer_size);
3763 if (res_method == nullptr) {
3768 res_method = klass->FindDirectMethod(name, signature, pointer_size);
3770 res_method = klass->FindInterfaceMethod(name, signature, pointer_size);
3772 res_method = klass->FindInterfaceMethod(name, signature, pointer_size);
3775 res_method = klass->FindVirtualMethod(name, signature, pointer_size);
3777 if (res_method != nullptr) {
3786 res_method = klass->FindDirectMethod(name, signature, pointer_size);
3788 if (res_method == nullptr) {
3798 if (res_method->IsConstructor() && method_type != METHOD_DIRECT) {
3800 << PrettyMethod(res_method);
3804 if (res_method->IsClassInitializer()) {
3806 << PrettyMethod(res_method);
3839 dex_cache_->SetResolvedMethod(dex_method_idx, res_method, pointer_size);
3843 if (!referrer.CanAccessMember(res_method->GetDeclaringClass(), res_method->GetAccessFlags())) {
3844 Fail(VERIFY_ERROR_ACCESS_METHOD) << "illegal method access (call " << PrettyMethod(res_method)
3846 return res_method;
3849 if (res_method->IsPrivate() && (method_type == METHOD_VIRTUAL || method_type == METHOD_SUPER)) {
3851 << PrettyMethod(res_method);
3856 if ((method_type == METHOD_DIRECT && (!res_method->IsDirect() || res_method->IsStatic())) ||
3857 (method_type == METHOD_STATIC && !res_method->IsStatic()) ||
3860 method_type == METHOD_INTERFACE) && res_method->IsDirect())
3863 " type of " << PrettyMethod(res_method);
3866 return res_method;
3871 T* it, const Instruction* inst, MethodType method_type, bool is_range, ArtMethod* res_method) {
3872 // We use vAA as our expected arg count, rather than res_method->insSize, because we need to
3903 if (res_method) {
3904 if (!res_method->IsConstructor()) {
3926 if (res_method != nullptr && !res_method->IsMiranda()) {
3927 mirror::Class* klass = res_method->GetDeclaringClass();
4010 return res_method;
4028 explicit MethodParamListDescriptorIterator(ArtMethod* res_method) :
4029 res_method_(res_method), pos_(0), params_(res_method->GetParameterTypeList()),
4058 ArtMethod* res_method = ResolveMethodAndCheckAccess(method_idx, method_type);
4059 if (res_method == nullptr) { // error or class is unresolved
4101 << " to super " << PrettyMethod(res_method);
4105 (res_method->GetMethodIndex() >= super.GetClass()->GetVTableLength())) {
4109 << "." << res_method->GetName()
4110 << res_method->GetSignature();
4117 MethodParamListDescriptorIterator it(res_method);
4119 is_range, res_method);
4161 ArtMethod* res_method = dispatch_class->GetVTableEntry(vtable_index, pointer_size);
4167 return res_method;
4174 ArtMethod* res_method = GetQuickInvokedMethod(inst, work_line_.get(), is_range, false);
4175 if (res_method == nullptr) {
4179 if (FailOrAbort(this, !res_method->IsDirect(), "Quick-invoked method is direct at ",
4183 if (FailOrAbort(this, !res_method->IsStatic(), "Quick-invoked method is static at ",
4188 // We use vAA as our expected arg count, rather than res_method->insSize, because we need to
4210 if (actual_arg_type.IsUninitializedTypes() && !res_method->IsConstructor()) {
4215 mirror::Class* klass = res_method->GetDeclaringClass();
4233 const DexFile::TypeList* params = res_method->GetParameterTypeList();
4242 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Rejecting invalid call to '" << PrettyMethod(res_method)
4249 res_method->GetTypeDescriptorFromTypeIdx(params->GetTypeItem(param_index).type_idx_);
4251 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Rejecting invocation of " << PrettyMethod(res_method)
4258 return res_method;
4263 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Rejecting invocation of " << PrettyMethod(res_method)
4267 return res_method;