Lines Matching refs:method

150 inline void Class::SetEmbeddedImTableEntry(uint32_t i, ArtMethod* method) {
152 SetFieldObject<false>(MemberOffset(offset), method);
186 inline void Class::SetEmbeddedVTableEntry(uint32_t i, ArtMethod* method) {
188 SetFieldObject<false>(MemberOffset(offset), method);
189 CHECK(method == GetVTableDuringLinking()->Get(i));
279 inline bool Class::ResolvedMethodAccessTest(Class* access_to, ArtMethod* method,
284 // The referrer class can't access the method's declaring class but may still be able
285 // to access the method if the MethodId specifies an accessible subclass of the declaring
289 // The referenced class has already been resolved with the method, get it from the dex cache.
295 method, throw_invoke_type);
299 DCHECK_EQ(this->CanAccessMember(access_to, method->GetAccessFlags()),
300 this->CanAccessMember(dex_access_to, method->GetAccessFlags()));
302 if (LIKELY(this->CanAccessMember(access_to, method->GetAccessFlags()))) {
306 ThrowIllegalAccessErrorMethod(this, method);
321 inline bool Class::CanAccessResolvedMethod(Class* access_to, ArtMethod* method,
323 return ResolvedMethodAccessTest<false, false, kStatic>(access_to, method, method_idx, dex_cache);
327 inline bool Class::CheckResolvedMethodAccess(Class* access_to, ArtMethod* method,
329 return ResolvedMethodAccessTest<true, true, throw_invoke_type>(access_to, method, method_idx,
346 inline ArtMethod* Class::FindVirtualMethodForInterface(ArtMethod* method) {
347 Class* declaring_class = method->GetDeclaringClass();
349 DCHECK(declaring_class->IsInterface()) << PrettyMethod(method);
355 return iftable->GetMethodArray(i)->Get(method->GetMethodIndex());
361 inline ArtMethod* Class::FindVirtualMethodForVirtual(ArtMethod* method) {
362 DCHECK(!method->GetDeclaringClass()->IsInterface() || method->IsMiranda());
363 // The argument method may from a super class.
365 return GetVTableEntry(method->GetMethodIndex());
368 inline ArtMethod* Class::FindVirtualMethodForSuper(ArtMethod* method) {
369 DCHECK(!method->GetDeclaringClass()->IsInterface());
370 return GetSuperClass()->GetVTableEntry(method->GetMethodIndex());
373 inline ArtMethod* Class::FindVirtualMethodForVirtualOrInterface(ArtMethod* method) {
374 if (method->IsDirect()) {
375 return method;
377 if (method->GetDeclaringClass()->IsInterface() && !method->IsMiranda()) {
378 return FindVirtualMethodForInterface(method);
380 return FindVirtualMethodForVirtual(method);