Lines Matching refs:klass
82 void ClassHierarchyAnalysis::ResetSingleImplementationInHierarchy(ObjPtr<mirror::Class> klass, in ResetSingleImplementationInHierarchy() argument
87 DCHECK(klass != nullptr); in ResetSingleImplementationInHierarchy()
91 if (klass->IsInterface()) { in ResetSingleImplementationInHierarchy()
99 if (!alloc->ContainsUnsafe(klass->GetMethodsPtr())) { in ResetSingleImplementationInHierarchy()
104 if (!klass->IsResolved()) { in ResetSingleImplementationInHierarchy()
108 ObjPtr<mirror::Class> super = klass->GetSuperClass<kDefaultVerifyFlags, kWithoutReadBarrier>(); in ResetSingleImplementationInHierarchy()
121 klass->GetClassLoader<kDefaultVerifyFlags, kWithoutReadBarrier>(); in ResetSingleImplementationInHierarchy()
124 klass->GetVTableEntry<kDefaultVerifyFlags, kWithoutReadBarrier>(vtbl_index, pointer_size); in ResetSingleImplementationInHierarchy()
161 ObjPtr<mirror::IfTable> iftable = klass->GetIfTable<kDefaultVerifyFlags, kWithoutReadBarrier>(); in ResetSingleImplementationInHierarchy()
162 const size_t ifcount = klass->GetIfTableCount<kDefaultVerifyFlags>(); in ResetSingleImplementationInHierarchy()
326 Handle<mirror::Class> klass, in CheckVirtualMethodSingleImplementationInfo() argument
341 virtual_method->GetDeclaringClass() == klass.Get()); in CheckVirtualMethodSingleImplementationInfo()
365 VerifyNonSingleImplementation(klass->GetSuperClass()->GetSuperClass(), in CheckVirtualMethodSingleImplementationInfo()
375 VerifyNonSingleImplementation(klass->GetSuperClass()->GetSuperClass(), in CheckVirtualMethodSingleImplementationInfo()
382 DCHECK(klass->IsInstantiable()); in CheckVirtualMethodSingleImplementationInfo()
436 ObjPtr<mirror::Class> super_super = klass->GetSuperClass()->GetSuperClass(); in CheckVirtualMethodSingleImplementationInfo()
472 Handle<mirror::Class> klass, in CheckInterfaceMethodSingleImplementationInfo() argument
477 DCHECK(klass->IsInstantiable()); in CheckInterfaceMethodSingleImplementationInfo()
521 void ClassHierarchyAnalysis::InitSingleImplementationFlag(Handle<mirror::Class> klass, in InitSingleImplementationFlag() argument
524 DCHECK(method->IsCopied() || method->GetDeclaringClass() == klass.Get()); in InitSingleImplementationFlag()
525 if (klass->IsFinal() || method->IsFinal()) { in InitSingleImplementationFlag()
558 void ClassHierarchyAnalysis::UpdateAfterLoadingOf(Handle<mirror::Class> klass) { in UpdateAfterLoadingOf() argument
560 if (klass->IsInterface()) { in UpdateAfterLoadingOf()
561 for (ArtMethod& method : klass->GetDeclaredVirtualMethods(image_pointer_size)) { in UpdateAfterLoadingOf()
563 InitSingleImplementationFlag(klass, &method, image_pointer_size); in UpdateAfterLoadingOf()
568 ObjPtr<mirror::Class> super_class = klass->GetSuperClass(); in UpdateAfterLoadingOf()
579 ArtMethod* method = klass->GetVTableEntry(i, image_pointer_size); in UpdateAfterLoadingOf()
583 if (method->IsAbstract() && klass->IsInstantiable()) { in UpdateAfterLoadingOf()
586 CheckVirtualMethodSingleImplementationInfo(klass, in UpdateAfterLoadingOf()
594 InitSingleImplementationFlag(klass, method, image_pointer_size); in UpdateAfterLoadingOf()
595 CheckVirtualMethodSingleImplementationInfo(klass, in UpdateAfterLoadingOf()
602 for (int32_t i = super_class->GetVTableLength(); i < klass->GetVTableLength(); ++i) { in UpdateAfterLoadingOf()
603 ArtMethod* method = klass->GetVTableEntry(i, image_pointer_size); in UpdateAfterLoadingOf()
604 InitSingleImplementationFlag(klass, method, image_pointer_size); in UpdateAfterLoadingOf()
607 if (klass->IsInstantiable()) { in UpdateAfterLoadingOf()
608 ObjPtr<mirror::IfTable> iftable = klass->GetIfTable(); in UpdateAfterLoadingOf()
609 const size_t ifcount = klass->GetIfTableCount(); in UpdateAfterLoadingOf()
617 DCHECK(implementation_method != nullptr) << klass->PrettyClass(); in UpdateAfterLoadingOf()
618 CheckInterfaceMethodSingleImplementationInfo(klass, in UpdateAfterLoadingOf()