Lines Matching refs:klass

640           ObjPtr<mirror::Class> klass =  in InitializeTypeCheckBitstrings()  local
644 CHECK(klass != nullptr) << descriptor << " should have been previously resolved."; in InitializeTypeCheckBitstrings()
646 if (!klass->IsFinal()) { in InitializeTypeCheckBitstrings()
648 SubtypeCheck<ObjPtr<mirror::Class>>::EnsureAssigned(klass); in InitializeTypeCheckBitstrings()
721 bool operator()(ObjPtr<mirror::Class> klass) override in operator ()() argument
723 if (Runtime::Current()->GetHeap()->ObjectIsInBootImageSpace(klass)) { in operator ()()
727 to_visit_.push_back(hs_.NewHandle(klass)); in operator ()()
740 void FillIMTAndConflictTables(ObjPtr<mirror::Class> klass) in FillIMTAndConflictTables() argument
742 if (!klass->ShouldHaveImt()) { in FillIMTAndConflictTables()
745 if (visited_classes_.find(klass.Ptr()) != visited_classes_.end()) { in FillIMTAndConflictTables()
748 if (klass->HasSuperClass()) { in FillIMTAndConflictTables()
749 FillIMTAndConflictTables(klass->GetSuperClass()); in FillIMTAndConflictTables()
751 if (!klass->IsTemp()) { in FillIMTAndConflictTables()
752 Runtime::Current()->GetClassLinker()->FillIMTAndConflictTables(klass); in FillIMTAndConflictTables()
754 visited_classes_.insert(klass.Ptr()); in FillIMTAndConflictTables()
899 for (ObjPtr<mirror::Class> klass : classes_) { in FindExceptionTypesToResolve()
900 for (ArtMethod& method : klass->GetMethods(pointer_size)) { in FindExceptionTypesToResolve()
948 static inline bool CanIncludeInCurrentImage(ObjPtr<mirror::Class> klass) in CanIncludeInCurrentImage() argument
950 DCHECK(klass != nullptr); in CanIncludeInCurrentImage()
955 if (heap->ObjectIsInBootImageSpace(klass)) { in CanIncludeInCurrentImage()
958 return AotClassLinker::CanReferenceInBootImageExtension(klass, heap); in CanIncludeInCurrentImage()
966 bool operator()(ObjPtr<mirror::Class> klass) override REQUIRES_SHARED(Locks::mutator_lock_) { in operator ()() argument
967 bool resolved = klass->IsResolved(); in operator ()()
968 DCHECK(resolved || klass->IsErroneousUnresolved()); in operator ()()
969 bool can_include_in_image = LIKELY(resolved) && CanIncludeInCurrentImage(klass); in operator ()()
971 std::string_view descriptor(klass->GetDescriptor(&temp)); in operator ()()
1040 Handle<mirror::Class> klass( in LoadImageClasses() local
1042 if (klass == nullptr) { in LoadImageClasses()
1077 ObjPtr<mirror::Class> klass = class_linker->ResolveType( in LoadImageClasses() local
1079 if (klass == nullptr) { in LoadImageClasses()
1086 DCHECK(java_lang_Throwable->IsAssignableFrom(klass)); in LoadImageClasses()
1106 ObjPtr<mirror::Class> klass, in MaybeAddToImageClasses() argument
1112 if (heap->ObjectIsInBootImageSpace(klass)) { in MaybeAddToImageClasses()
1119 while (!klass->IsObjectClass()) { in MaybeAddToImageClasses()
1120 const char* descriptor = klass->GetDescriptor(&temp); in MaybeAddToImageClasses()
1126 for (size_t i = 0, num_interfaces = klass->NumDirectInterfaces(); i != num_interfaces; ++i) { in MaybeAddToImageClasses()
1127 ObjPtr<mirror::Class> interface = mirror::Class::GetDirectInterface(self, klass, i); in MaybeAddToImageClasses()
1131 for (auto& m : klass->GetVirtualMethods(pointer_size)) { in MaybeAddToImageClasses()
1134 if (klass->IsArrayClass()) { in MaybeAddToImageClasses()
1135 MaybeAddToImageClasses(self, klass->GetComponentType(), image_classes); in MaybeAddToImageClasses()
1137 klass = klass->GetSuperClass(); in MaybeAddToImageClasses()
1173 void operator()(ObjPtr<mirror::Class> klass ATTRIBUTE_UNUSED, in operator ()()
1203 bool operator()(ObjPtr<mirror::Class> klass) override REQUIRES_SHARED(Locks::mutator_lock_) { in operator ()() argument
1204 bool resolved = klass->IsResolved(); in operator ()()
1205 DCHECK(resolved || klass->IsErroneousUnresolved()); in operator ()()
1206 bool can_include_in_image = LIKELY(resolved) && CanIncludeInCurrentImage(klass); in operator ()()
1208 std::string_view descriptor(klass->GetDescriptor(&temp)); in operator ()()
1212 data_->image_classes_.push_back(data_->hs_.NewHandle(klass)); in operator ()()
1220 if (klass->IsInitialized() && klass->FindClassInitializer( in operator ()()
1222 DCHECK(!Runtime::Current()->GetHeap()->ObjectIsInBootImageSpace(klass->GetDexCache())) in operator ()()
1223 << klass->PrettyDescriptor(); in operator ()()
1224 data_->image_classes_.push_back(data_->hs_.NewHandle(klass)); in operator ()()
1467 static bool SkipClass(jobject class_loader, const DexFile& dex_file, ObjPtr<mirror::Class> klass) in SkipClass() argument
1469 DCHECK(klass != nullptr); in SkipClass()
1470 const DexFile& original_dex_file = *klass->GetDexCache()->GetDexFile(); in SkipClass()
1473 LOG(WARNING) << "Skipping class " << klass->PrettyDescriptor() << " from " in SkipClass()
1539 ObjPtr<mirror::Class> klass = in Visit() local
1542 if (klass == nullptr) { in Visit()
1548 Handle<mirror::Class> hklass(hs.NewHandle(klass)); in Visit()
1580 klass.Assign(hklass.Get()); in Visit()
1583 if (SkipClass(jclass_loader, dex_file, klass)) { in Visit()
1646 ObjPtr<mirror::Class> klass = (dex_cache != nullptr) in Visit() local
1650 if (klass == nullptr) { in Visit()
1884 Handle<mirror::Class> klass( in Visit() local
1888 if (klass == nullptr) { in Visit()
1937 } else if (&klass->GetDexFile() != &dex_file) { in Visit()
1940 } else if (!SkipClass(jclass_loader, dex_file, klass.Get())) { in Visit()
1941 CHECK(klass->IsResolved()) << klass->PrettyClass(); in Visit()
1944 klass, in Visit()
1947 if (klass->IsErroneous()) { in Visit()
1956 CHECK(klass->ShouldVerifyAtRuntime() || in Visit()
1957 klass->IsVerifiedNeedsAccessChecks() || in Visit()
1958 klass->IsVerified() || in Visit()
1959 klass->IsErroneous()) in Visit()
1960 << klass->PrettyDescriptor() << ": state=" << klass->GetStatus(); in Visit()
1963 ClassStatus status = klass->GetStatus(); in Visit()
1980 if (!klass->IsResolved() || klass->IsErroneous()) { in Visit()
1981 LOG(FATAL) << "Boot classpath class " << klass->PrettyClass() in Visit()
1982 << " failed to resolve/is erroneous: state= " << klass->GetStatus(); in Visit()
1986 if (klass->IsVerified()) { in Visit()
1988 } else if (klass->IsVerifiedNeedsAccessChecks()) { in Visit()
1990 } else if (klass->ShouldVerifyAtRuntime()) { in Visit()
2051 Handle<mirror::Class> klass( in Visit() local
2054 if (klass != nullptr) { in Visit()
2057 if (klass->IsResolved() && !klass->IsErroneousResolved()) { in Visit()
2058 if (klass->GetStatus() < ClassStatus::kVerified) { in Visit()
2059 ObjectLock<mirror::Class> lock(soa.Self(), klass); in Visit()
2061 mirror::Class::SetStatus(klass, ClassStatus::kVerified, soa.Self()); in Visit()
2066 klass->SetSkipAccessChecksFlagOnAllMethods(GetInstructionSetPointerSize(instruction_set)); in Visit()
2067 klass->SetVerificationAttempted(); in Visit()
2071 manager_->GetCompiler()->RecordClassStatus(ref, klass->GetStatus()); in Visit()
2117 Handle<mirror::Class> klass( in Visit() local
2120 if (klass != nullptr) { in Visit()
2121 if (!SkipClass(manager_->GetClassLoader(), dex_file, klass.Get())) { in Visit()
2122 TryInitializeClass(soa.Self(), klass, class_loader); in Visit()
2124 manager_->GetCompiler()->stats_->AddClassStatus(klass->GetStatus()); in Visit()
2132 Handle<mirror::Class> klass, in TryInitializeClass() argument
2135 const DexFile& dex_file = klass->GetDexFile(); in TryInitializeClass()
2136 const dex::ClassDef* class_def = klass->GetClassDef(); in TryInitializeClass()
2150 runtime->GetHeap()->ObjectIsInBootImageSpace(klass->GetDexCache())) { in TryInitializeClass()
2155 if ((!is_boot_image && !is_boot_image_extension) && klass->IsBootStrapClassLoaded()) { in TryInitializeClass()
2159 ClassStatus old_status = klass->GetStatus(); in TryInitializeClass()
2161 if (klass->IsVerified()) { in TryInitializeClass()
2164 class_linker->EnsureInitialized(self, klass, false, false); in TryInitializeClass()
2166 old_status = klass->GetStatus(); in TryInitializeClass()
2167 if (!klass->IsInitialized()) { in TryInitializeClass()
2176 Handle<mirror::Class> h_klass(hs.NewHandle(klass->GetClass())); in TryInitializeClass()
2183 is_boot_image ? true : InitializeDependencies(klass, class_loader, self); in TryInitializeClass()
2185 class_linker->EnsureInitialized(self, klass, false, true); in TryInitializeClass()
2190 old_status = klass->GetStatus(); in TryInitializeClass()
2193 klass->NumStaticFields() > kMaxEncodedFields; in TryInitializeClass()
2197 if (!klass->IsInitialized() && in TryInitializeClass()
2220 NoClinitInDependency(klass, self, &class_loader)); in TryInitializeClass()
2247 runtime->EnterTransactionMode(is_app_image, klass.Get()); in TryInitializeClass()
2249 bool success = class_linker->EnsureInitialized(self, klass, true, true); in TryInitializeClass()
2265 old_status = klass->GetStatus(); in TryInitializeClass()
2280 CHECK_EQ(old_status, klass->GetStatus()) << "Previous class status not restored"; in TryInitializeClass()
2290 if (&klass->GetDexFile() == manager_->GetDexFile()) { in TryInitializeClass()
2291 InternStrings(klass, class_loader); in TryInitializeClass()
2305 if (!klass->IsInitialized() && class_linker->ValidateSuperClassDescriptors(klass)) { in TryInitializeClass()
2318 ClassReference ref(&dex_file, klass->GetDexClassDefIndex()); in TryInitializeClass()
2330 void InternStrings(Handle<mirror::Class> klass, Handle<mirror::ClassLoader> class_loader) in InternStrings() argument
2334 DCHECK(klass->IsVerified()); in InternStrings()
2335 DCHECK(!klass->IsInitialized()); in InternStrings()
2338 Handle<mirror::DexCache> dex_cache = hs.NewHandle(klass->GetDexCache()); in InternStrings()
2339 const dex::ClassDef* class_def = klass->GetClassDef(); in InternStrings()
2357 ArtMethod* clinit = klass->FindClassInitializer(class_linker->GetImagePointerSize()); in InternStrings()
2397 bool PreResolveTypes(Thread* self, const Handle<mirror::Class>& klass) in PreResolveTypes() argument
2400 for (ArtMethod& m : klass->GetMethods(pointer_size)) { in PreResolveTypes()
2405 if (klass->IsInterface()) { in PreResolveTypes()
2407 } else if (klass->HasSuperClass()) { in PreResolveTypes()
2409 MutableHandle<mirror::Class> super_klass(hs.NewHandle<mirror::Class>(klass->GetSuperClass())); in PreResolveTypes()
2411 ArtMethod* m = klass->GetVTableEntry(i, pointer_size); in PreResolveTypes()
2417 for (int32_t i = 0; i < klass->GetIfTableCount(); ++i) { in PreResolveTypes()
2418 super_klass.Assign(klass->GetIfTable()->GetInterface(i)); in PreResolveTypes()
2419 if (klass->GetClassLoader() != super_klass->GetClassLoader()) { in PreResolveTypes()
2422 ArtMethod* m = klass->GetIfTable()->GetMethodArray(i)->GetElementPtrSize<ArtMethod*>( in PreResolveTypes()
2438 bool InitializeDependencies(const Handle<mirror::Class>& klass, in InitializeDependencies() argument
2442 if (klass->HasSuperClass()) { in InitializeDependencies()
2444 Handle<mirror::Class> super_class = hs.NewHandle(klass->GetSuperClass()); in InitializeDependencies()
2453 if (!klass->IsInterface()) { in InitializeDependencies()
2454 size_t num_interfaces = klass->GetIfTableCount(); in InitializeDependencies()
2457 Handle<mirror::Class> iface = hs.NewHandle(klass->GetIfTable()->GetInterface(i)); in InitializeDependencies()
2467 return PreResolveTypes(self, klass); in InitializeDependencies()
2472 bool NoClinitInDependency(const Handle<mirror::Class>& klass, in NoClinitInDependency() argument
2477 klass->FindClassInitializer(manager_->GetClassLinker()->GetImagePointerSize()); in NoClinitInDependency()
2479 VLOG(compiler) << klass->PrettyClass() << ' ' << clinit->PrettyMethod(true); in NoClinitInDependency()
2482 if (klass->HasSuperClass()) { in NoClinitInDependency()
2483 ObjPtr<mirror::Class> super_class = klass->GetSuperClass(); in NoClinitInDependency()
2491 uint32_t num_if = klass->NumDirectInterfaces(); in NoClinitInDependency()
2494 interface = mirror::Class::GetDirectInterface(self, klass.Get(), i); in NoClinitInDependency()
2590 Handle<mirror::Class> klass( in CompileDexFile() local
2593 if (klass == nullptr) { in CompileDexFile()
2597 } else if (SkipClass(jclass_loader, dex_file, klass.Get())) { in CompileDexFile()
2599 } else if (&klass->GetDexFile() != &dex_file) { in CompileDexFile()
2603 dex_cache = hs.NewHandle(klass->GetDexCache()); in CompileDexFile()