Lines Matching refs:cls
238 mirror::Class* GetClassContent(ObjPtr<mirror::Class> cls) REQUIRES_SHARED(Locks::mutator_lock_) { in GetClassContent() argument
239 if (cls == nullptr || IsInBootImage(cls.Ptr())) { in GetClassContent()
240 return cls.Ptr(); in GetClassContent()
242 const dex::ClassDef* class_def = cls->GetClassDef(); in GetClassContent()
243 DCHECK(class_def != nullptr) << cls->PrettyClass(); in GetClassContent()
245 DCHECK(it != classes_.end()) << cls->PrettyClass(); in GetClassContent()
463 bool CanEmitHelper(Handle<mirror::Class> cls) REQUIRES_SHARED(Locks::mutator_lock_) { in CanEmitHelper() argument
466 if (!ContainsElement(dex_files_, &cls->GetDexFile())) { in CanEmitHelper()
472 MutableHandle<mirror::Class> other_class = hs.NewHandle(cls->GetSuperClass()); in CanEmitHelper()
477 other_class.Assign(cls->GetComponentType()); in CanEmitHelper()
482 for (size_t i = 0, num_interfaces = cls->NumDirectInterfaces(); i < num_interfaces; ++i) { in CanEmitHelper()
483 other_class.Assign(cls->GetDirectInterface(i)); in CanEmitHelper()
492 bool CanEmit(Handle<mirror::Class> cls) REQUIRES_SHARED(Locks::mutator_lock_) { in CanEmit() argument
493 if (cls == nullptr) { in CanEmit()
496 DCHECK(cls->IsResolved()); in CanEmit()
498 if (cls->IsErroneous()) { in CanEmit()
503 if (cls->IsProxyClass()) { in CanEmit()
508 if (helper_->IsInBootImage(cls.Get())) { in CanEmit()
512 if (cls->IsBootStrapClassLoaded()) { in CanEmit()
517 DCHECK(!cls->IsPrimitive()); in CanEmit()
519 if (cls->IsArrayClass()) { in CanEmit()
520 if (cls->IsBootStrapClassLoaded()) { in CanEmit()
523 return helper_->IsInBootImage(cls.Get()); in CanEmit()
525 ObjPtr<mirror::Class> temp = cls.Get(); in CanEmit()
531 const dex::ClassDef* class_def = cls->GetClassDef(); in CanEmit()
540 if (CanEmitHelper(cls)) { in CanEmit()
550 MutableHandle<mirror::Class> cls(obj.GetReference()); in Visit() local
551 if (CanEmit(cls)) { in Visit()
552 if (cls->IsBootStrapClassLoaded()) { in Visit()
553 DCHECK(helper_->IsInBootImage(cls.Get())); in Visit()
555 uint32_t hash = cls->DescriptorHash(); in Visit()
556 helper_->class_table_.InsertWithHash(ClassTable::TableSlot(cls.Get(), hash), hash); in Visit()
558 classes_to_write_.push_back(cls); in Visit()
606 for (Handle<mirror::Class> cls : classes_to_write) { in EmitClasses()
609 CopyClass(cls.Get()); in EmitClasses()
631 ObjPtr<mirror::Class> cls = old_types_array->Get(i); in EmitClasses() local
632 if (cls == nullptr) { in EmitClasses()
634 } else if (IsInBootImage(cls.Ptr())) { in EmitClasses()
635 if (!cls->IsPrimitive()) { in EmitClasses()
640 uint32_t hash = cls->DescriptorHash(); in EmitClasses()
641 class_table_.InsertWithHash(ClassTable::TableSlot(cls.Ptr(), hash), hash); in EmitClasses()
643 content_array->Set(i, cls.Ptr()); in EmitClasses()
644 } else if (cls->IsArrayClass()) { in EmitClasses()
646 cls->GetDescriptor(&class_name); in EmitClasses()
656 DCHECK(!cls->IsPrimitive()); in EmitClasses()
657 DCHECK(!cls->IsProxyClass()); in EmitClasses()
658 const dex::ClassDef* class_def = cls->GetClassDef(); in EmitClasses()
822 mirror::Class* cls = reinterpret_cast<mirror::Class*>(&objects_[entry.second]); in RelocateNativePointers() local
823 cls->FixupNativePointers(cls, kRuntimePointerSize, visitor); in RelocateNativePointers()
824 RelocateMethodPointerArrays(cls, visitor); in RelocateNativePointers()
827 mirror::Class* cls = reinterpret_cast<mirror::Class*>(&objects_[entry.second]); in RelocateNativePointers() local
828 cls->FixupNativePointers(cls, kRuntimePointerSize, visitor); in RelocateNativePointers()
829 RelocateMethodPointerArrays(cls, visitor); in RelocateNativePointers()
861 void CopyFieldArrays(ObjPtr<mirror::Class> cls, uint32_t class_image_address) in CopyFieldArrays() argument
864 cls->GetSFieldsPtr(), cls->GetIFieldsPtr(), in CopyFieldArrays()
888 void CopyMethodArrays(ObjPtr<mirror::Class> cls, in CopyMethodArrays() argument
892 size_t number_of_methods = cls->NumMethods(); in CopyMethodArrays()
902 memcpy(dest_array, cls->GetMethodsPtr(), size); in CopyMethodArrays()
903 native_relocations_.Put(cls->GetMethodsPtr(), in CopyMethodArrays()
907 ArtMethod* method = &cls->GetMethodsPtr()->At(i); in CopyMethodArrays()
912 if (declaring_class == cls) { in CopyMethodArrays()
943 } else if (!cls->IsVerified()) { in CopyMethodArrays()
987 void CopyImTable(ObjPtr<mirror::Class> cls) REQUIRES_SHARED(Locks::mutator_lock_) { in CopyImTable() argument
988 ImTable* table = cls->GetImt(kRuntimePointerSize); in CopyImTable()
1386 bool IsInitialized(mirror::Class* cls) REQUIRES_SHARED(Locks::mutator_lock_) { in IsInitialized() argument
1387 if (IsInBootImage(cls)) { in IsInitialized()
1388 const OatDexFile* oat_dex_file = cls->GetDexFile().GetOatDexFile(); in IsInitialized()
1390 uint16_t class_def_index = cls->GetDexClassDefIndex(); in IsInitialized()
1394 return cls->IsVisiblyInitialized<kVerifyNone>(); in IsInitialized()
1400 bool TryInitializeClass(mirror::Class* copy, ObjPtr<mirror::Class> cls, uint32_t class_offset) in TryInitializeClass() argument
1402 if (!cls->IsVerified()) { in TryInitializeClass()
1405 if (cls->IsArrayClass()) { in TryInitializeClass()
1410 mirror::Class* super = GetClassContent(cls->GetSuperClass()); in TryInitializeClass()
1412 << "App image classes should always have a super class: " << cls->PrettyClass(); in TryInitializeClass()
1418 if (cls->FindClassInitializer(kRuntimePointerSize) != nullptr) { in TryInitializeClass()
1424 if (!cls->IsInterface()) { in TryInitializeClass()
1425 for (size_t i = 0; i < cls->NumDirectInterfaces(); i++) { in TryInitializeClass()
1426 mirror::Class* itf = GetClassContent(cls->GetDirectInterface(i)); in TryInitializeClass()
1434 if (cls->NumStaticFields() == 0u) { in TryInitializeClass()
1439 EncodedStaticFieldValueIterator it(cls->GetDexFile(), *cls->GetClassDef()); in TryInitializeClass()
1448 ClassAccessor accessor(cls->GetDexFile(), *cls->GetClassDef()); in TryInitializeClass()
1454 cls->GetDexCache(), in TryInitializeClass()
1455 cls->GetClassLoader(), in TryInitializeClass()
1489 linker->LookupString(dex::StringIndex(it.GetJavaValue().i), cls->GetDexCache()); in TryInitializeClass()
1525 linker->LookupResolvedType(dex::TypeIndex(it.GetJavaValue().i), cls); in TryInitializeClass()
1572 uint32_t CopyClass(ObjPtr<mirror::Class> cls) REQUIRES_SHARED(Locks::mutator_lock_) { in CopyClass() argument
1573 DCHECK(!cls->IsBootStrapClassLoaded()); in CopyClass()
1575 if (cls->IsArrayClass()) { in CopyClass()
1577 cls->GetDescriptor(&class_name); in CopyClass()
1582 offset = CopyObject(cls); in CopyClass()
1585 const dex::ClassDef* class_def = cls->GetClassDef(); in CopyClass()
1590 offset = CopyObject(cls); in CopyClass()
1594 uint32_t hash = cls->DescriptorHash(); in CopyClass()
1600 DCHECK(inserted) << "Class " << cls->PrettyDescriptor() in CopyClass()
1601 << " (" << cls.Ptr() << ") already inserted"; in CopyClass()
1606 if (cls->IsArrayClass()) { in CopyClass()
1609 copy->SetStatusInternal(cls->IsVerified() ? ClassStatus::kVerified : ClassStatus::kResolved); in CopyClass()
1614 MemberOffset static_offset = cls->GetFirstReferenceStaticFieldOffset(kRuntimePointerSize); in CopyClass()
1617 cls->GetClassSize() - static_offset.Uint32Value()); in CopyClass()
1621 bool is_class_initialized = TryInitializeClass(copy, cls, offset); in CopyClass()
1626 if (!cls->IsArrayClass() && !cls->IsFinalizable()) { in CopyClass()
1627 copy->SetObjectSizeAllocFastPath(RoundUp(cls->GetObjectSize(), kObjectAlignment)); in CopyClass()
1629 if (cls->IsInterface()) { in CopyClass()
1640 CopyFieldArrays(cls, class_image_address); in CopyClass()
1641 CopyMethodArrays(cls, class_image_address, is_class_initialized); in CopyClass()
1642 if (cls->ShouldHaveImt()) { in CopyClass()
1643 CopyImTable(cls); in CopyClass()