Lines Matching refs:art
89 static std::unique_ptr<const art::DexFile> MakeSingleDexFile(art::Thread* self, in MakeSingleDexFile()
94 REQUIRES_SHARED(art::Locks::mutator_lock_) { in MakeSingleDexFile()
97 art::ArrayRef<const unsigned char> final_data(final_dex_data, final_len); in MakeSingleDexFile()
98 art::MemMap map = Redefiner::MoveDataToMemMap(orig_location, final_data, &error_msg); in MakeSingleDexFile()
107 if (map.Size() < sizeof(art::DexFile::Header)) { in MakeSingleDexFile()
109 art::ThrowClassFormatError(nullptr, in MakeSingleDexFile()
114 uint32_t checksum = reinterpret_cast<const art::DexFile::Header*>(map.Begin())->checksum_; in MakeSingleDexFile()
116 art::ArtDexFileLoader dex_file_loader(std::move(map), map_name); in MakeSingleDexFile()
117 std::unique_ptr<const art::DexFile> dex_file(dex_file_loader.Open(checksum, in MakeSingleDexFile()
123 art::ThrowClassFormatError(nullptr, in MakeSingleDexFile()
132 art::ThrowClassFormatError( in MakeSingleDexFile()
160 struct ClassCallback : public art::ClassLoadCallback {
162 art::Handle<art::mirror::Class> klass, in ClassPreDefine()
163 art::Handle<art::mirror::ClassLoader> class_loader, in ClassPreDefine()
164 const art::DexFile& initial_dex_file, in ClassPreDefine()
165 [[maybe_unused]] const art::dex::ClassDef& initial_class_def, in ClassPreDefine()
166 /*out*/ art::DexFile const** final_dex_file, in ClassPreDefine()
167 /*out*/ art::dex::ClassDef const** final_class_def) override in ClassPreDefine()
168 REQUIRES_SHARED(art::Locks::mutator_lock_) { in ClassPreDefine()
190 art::Thread* self = art::Thread::Current(); in ClassPreDefine()
214 art::StackHandleScope<2> hs(self); in ClassPreDefine()
217 art::Handle<art::mirror::ClassExt> ext = in ClassPreDefine()
218 hs.NewHandle(art::mirror::Class::EnsureExtDataPresent(klass, self)); in ClassPreDefine()
230 art::MutableHandle<art::mirror::Object> arr(hs.NewHandle<art::mirror::Object>(nullptr)); in ClassPreDefine()
235 art::JValue val; in ClassPreDefine()
237 arr.Assign(art::BoxPrimitive(art::Primitive::kPrimLong, val)); in ClassPreDefine()
239 arr.Assign(art::mirror::ByteArray::AllocateAndFill( in ClassPreDefine()
250 std::unique_ptr<const art::DexFile> dex_file(MakeSingleDexFile(self, in ClassPreDefine()
276 void ClassLoad(art::Handle<art::mirror::Class> klass) override in ClassLoad()
277 REQUIRES_SHARED(art::Locks::mutator_lock_) { in ClassLoad()
279 art::Thread* thread = art::Thread::Current(); in ClassLoad()
282 art::ObjPtr<art::mirror::Object> peer(thread->GetPeer()); in ClassLoad()
297 void ClassPrepare(art::Handle<art::mirror::Class> temp_klass, in ClassPrepare()
298 art::Handle<art::mirror::Class> klass) in ClassPrepare()
299 override REQUIRES_SHARED(art::Locks::mutator_lock_) { in ClassPrepare()
301 art::Thread* thread = art::Thread::Current(); in ClassPrepare()
309 art::ObjPtr<art::mirror::Object> peer(thread->GetPeer()); in ClassPrepare()
325 void AddTempClass(art::Thread* self, jclass klass) { in AddTempClass()
331 void HandleTempClass(art::Thread* self, in HandleTempClass()
332 art::Handle<art::mirror::Class> temp_klass, in HandleTempClass()
333 art::Handle<art::mirror::Class> klass) in HandleTempClass()
334 REQUIRES_SHARED(art::Locks::mutator_lock_) { in HandleTempClass()
343 … if (temp_klass.Get() == art::ObjPtr<art::mirror::Class>::DownCast(self->DecodeJObject(*it))) { in HandleTempClass()
356 void FixupTempClass(art::Thread* self, in FixupTempClass()
357 art::Handle<art::mirror::Class> temp_klass, in FixupTempClass()
358 art::Handle<art::mirror::Class> klass) in FixupTempClass()
359 REQUIRES_SHARED(art::Locks::mutator_lock_) { in FixupTempClass()
361 art::gc::Heap* heap = art::Runtime::Current()->GetHeap(); in FixupTempClass()
368 art::ScopedThreadSuspension sts(self, art::ThreadState::kWaitingForVisitObjects); in FixupTempClass()
369 art::ScopedSuspendAll ssa("FixupTempClass"); in FixupTempClass()
371 art::mirror::Class* input = temp_klass.Get(); in FixupTempClass()
372 art::mirror::Class* output = klass.Get(); in FixupTempClass()
383 class RootUpdater : public art::RootVisitor {
385 RootUpdater(const art::mirror::Class* input, art::mirror::Class* output) in RootUpdater()
388 void VisitRoots(art::mirror::Object*** roots, in VisitRoots()
390 [[maybe_unused]] const art::RootInfo& info) override { in VisitRoots()
398 void VisitRoots(art::mirror::CompressedReference<art::mirror::Object>** roots, in VisitRoots()
400 [[maybe_unused]] const art::RootInfo& info) override in VisitRoots()
401 REQUIRES_SHARED(art::Locks::mutator_lock_) { in VisitRoots()
410 const art::mirror::Class* input_;
411 art::mirror::Class* output_;
414 void FixupGlobalReferenceTables(art::mirror::Class* input, art::mirror::Class* output) in FixupGlobalReferenceTables()
415 REQUIRES(art::Locks::mutator_lock_) { in FixupGlobalReferenceTables()
416 art::JavaVMExt* java_vm = art::Runtime::Current()->GetJavaVM(); in FixupGlobalReferenceTables()
422 class WeakGlobalUpdate : public art::IsMarkedVisitor { in FixupGlobalReferenceTables()
424 WeakGlobalUpdate(art::mirror::Class* root_input, art::mirror::Class* root_output) in FixupGlobalReferenceTables()
427 art::mirror::Object* IsMarked(art::mirror::Object* obj) override { in FixupGlobalReferenceTables()
435 const art::mirror::Class* input_; in FixupGlobalReferenceTables()
436 art::mirror::Class* output_; in FixupGlobalReferenceTables()
442 void FixupLocalReferenceTables(art::Thread* self, in FixupLocalReferenceTables()
443 art::mirror::Class* input, in FixupLocalReferenceTables()
444 art::mirror::Class* output) in FixupLocalReferenceTables()
445 REQUIRES(art::Locks::mutator_lock_) { in FixupLocalReferenceTables()
448 LocalUpdate(const art::mirror::Class* root_input, art::mirror::Class* root_output) in FixupLocalReferenceTables()
451 static void Callback(art::Thread* t, void* arg) REQUIRES(art::Locks::mutator_lock_) { in FixupLocalReferenceTables()
457 &local_update, art::RootInfo(art::kRootJNILocal, t->GetThreadId())); in FixupLocalReferenceTables()
461 const art::mirror::Class* input_; in FixupLocalReferenceTables()
462 art::mirror::Class* output_; in FixupLocalReferenceTables()
465 art::MutexLock mu(self, *art::Locks::thread_list_lock_); in FixupLocalReferenceTables()
466 art::Runtime::Current()->GetThreadList()->ForEach(LocalUpdate::Callback, &local_upd); in FixupLocalReferenceTables()
469 void FixupHeap(art::mirror::Class* input, art::mirror::Class* output) in FixupHeap()
470 REQUIRES(art::Locks::mutator_lock_) { in FixupHeap()
473 HeapFixupVisitor(const art::mirror::Class* root_input, art::mirror::Class* root_output) in FixupHeap()
476 void operator()(art::mirror::Object* src, in FixupHeap()
477 art::MemberOffset field_offset, in FixupHeap()
479 REQUIRES_SHARED(art::Locks::mutator_lock_) { in FixupHeap()
480 art::mirror::HeapReference<art::mirror::Object>* trg = in FixupHeap()
489 void operator()([[maybe_unused]] art::ObjPtr<art::mirror::Class> klass, in FixupHeap()
490 art::ObjPtr<art::mirror::Reference> reference) const in FixupHeap()
491 REQUIRES_SHARED(art::Locks::mutator_lock_) { in FixupHeap()
492 art::mirror::Object* val = reference->GetReferent(); in FixupHeap()
499 [[maybe_unused]] art::mirror::CompressedReference<art::mirror::Object>* root) const { in FixupHeap()
504 [[maybe_unused]] art::mirror::CompressedReference<art::mirror::Object>* root) const { in FixupHeap()
509 const art::mirror::Class* input_; in FixupHeap()
510 art::mirror::Class* output_; in FixupHeap()
513 auto object_visitor = [&](art::mirror::Object* obj) { in FixupHeap()
516 art::Runtime::Current()->GetHeap()->VisitObjectsPaused(object_visitor); in FixupHeap()
532 art::ScopedThreadStateChange stsc(art::Thread::Current(), in Register()
533 art::ThreadState::kWaitingForDebuggerToAttach); in Register()
534 art::ScopedSuspendAll ssa("Add load callback"); in Register()
535 art::Runtime::Current()->GetRuntimeCallbacks()->AddClassLoadCallback(&gClassCallback); in Register()
539 art::ScopedThreadStateChange stsc(art::Thread::Current(), in Unregister()
540 art::ThreadState::kWaitingForDebuggerToAttach); in Unregister()
541 art::ScopedSuspendAll ssa("Remove thread callback"); in Unregister()
542 art::Runtime* runtime = art::Runtime::Current(); in Unregister()
550 art::ScopedObjectAccess soa(art::Thread::Current()); in GetClassFields()
551 art::ObjPtr<art::mirror::Class> klass = soa.Decode<art::mirror::Class>(jklass); in GetClassFields()
567 art::IterationRange<art::StrideIterator<art::ArtField>> ifields = klass->GetIFields(); in GetClassFields()
568 art::IterationRange<art::StrideIterator<art::ArtField>> sfields = klass->GetSFields(); in GetClassFields()
579 for (art::ArtField& field : sfields) { in GetClassFields()
580 field_array[array_idx] = art::jni::EncodeArtField(&field); in GetClassFields()
583 for (art::ArtField& field : ifields) { in GetClassFields()
584 field_array[array_idx] = art::jni::EncodeArtField(&field); in GetClassFields()
598 art::ScopedObjectAccess soa(art::Thread::Current()); in GetClassMethods()
599 art::ObjPtr<art::mirror::Class> klass = soa.Decode<art::mirror::Class>(jklass); in GetClassMethods()
623 if (art::kIsDebugBuild) { in GetClassMethods()
625 for ([[maybe_unused]] auto& m : klass->GetDeclaredMethods(art::kRuntimePointerSize)) { in GetClassMethods()
632 for (auto& m : klass->GetDeclaredMethods(art::kRuntimePointerSize)) { in GetClassMethods()
633 method_array[array_idx] = art::jni::EncodeArtMethod(&m); in GetClassMethods()
647 art::ScopedObjectAccess soa(art::Thread::Current()); in GetImplementedInterfaces()
648 art::ObjPtr<art::mirror::Class> klass = soa.Decode<art::mirror::Class>(jklass); in GetImplementedInterfaces()
673 art::StackHandleScope<1> hs(soa.Self()); in GetImplementedInterfaces()
674 art::Handle<art::mirror::Class> h_klass(hs.NewHandle(klass)); in GetImplementedInterfaces()
677 art::ObjPtr<art::mirror::Class> inf_klass = in GetImplementedInterfaces()
678 art::mirror::Class::ResolveDirectInterface(soa.Self(), h_klass, idx); in GetImplementedInterfaces()
698 art::ScopedObjectAccess soa(art::Thread::Current()); in GetClassSignature()
699 art::ObjPtr<art::mirror::Class> klass = soa.Decode<art::mirror::Class>(jklass); in GetClassSignature()
720 art::StackHandleScope<1> hs(soa.Self()); in GetClassSignature()
721 art::Handle<art::mirror::Class> h_klass = hs.NewHandle(klass); in GetClassSignature()
722 art::ObjPtr<art::mirror::ObjectArray<art::mirror::String>> str_array = in GetClassSignature()
723 art::annotations::GetSignatureAnnotationForClass(h_klass); in GetClassSignature()
752 art::ScopedObjectAccess soa(art::Thread::Current()); in GetClassStatus()
753 art::ObjPtr<art::mirror::Class> klass = soa.Decode<art::mirror::Class>(jklass); in GetClassStatus()
786 art::ScopedObjectAccess soa(art::Thread::Current()); in ClassIsT()
787 art::ObjPtr<art::mirror::Class> klass = soa.Decode<art::mirror::Class>(jklass); in ClassIsT()
803 auto test = [](art::ObjPtr<art::mirror::Class> klass) REQUIRES_SHARED(art::Locks::mutator_lock_) { in IsInterface()
812 auto test = [](art::ObjPtr<art::mirror::Class> klass) REQUIRES_SHARED(art::Locks::mutator_lock_) { in IsArrayClass()
819 static uint32_t ClassGetModifiers(art::Thread* self, art::ObjPtr<art::mirror::Class> klass) in ClassGetModifiers()
820 REQUIRES_SHARED(art::Locks::mutator_lock_) { in ClassGetModifiers()
823 if ((component_modifiers & art::kAccInterface) != 0) { in ClassGetModifiers()
824 component_modifiers &= ~(art::kAccInterface | art::kAccStatic); in ClassGetModifiers()
826 return art::kAccAbstract | art::kAccFinal | component_modifiers; in ClassGetModifiers()
829 uint32_t modifiers = klass->GetAccessFlags() & art::kAccJavaFlagsMask; in ClassGetModifiers()
831 art::StackHandleScope<1> hs(self); in ClassGetModifiers()
832 art::Handle<art::mirror::Class> h_klass(hs.NewHandle(klass)); in ClassGetModifiers()
833 return art::mirror::Class::GetInnerClassFlags(h_klass, modifiers); in ClassGetModifiers()
839 art::ScopedObjectAccess soa(art::Thread::Current()); in GetClassModifiers()
840 art::ObjPtr<art::mirror::Class> klass = soa.Decode<art::mirror::Class>(jklass); in GetClassModifiers()
857 art::ScopedObjectAccess soa(art::Thread::Current()); in GetClassLoader()
858 art::ObjPtr<art::mirror::Class> klass = soa.Decode<art::mirror::Class>(jklass); in GetClassLoader()
874 const std::vector<const art::DexFile*>& dex_files, in CopyClassDescriptors()
888 for (const art::DexFile* dex_file : dex_files) { in CopyClassDescriptors()
919 art::Thread* self = art::Thread::Current(); in GetClassLoaderClassDescriptors()
927 std::vector<const art::DexFile*> dex_files_storage; in GetClassLoaderClassDescriptors()
928 const std::vector<const art::DexFile*>* dex_files = nullptr; in GetClassLoaderClassDescriptors()
931 dex_files = &art::Runtime::Current()->GetClassLinker()->GetBootClassPath(); in GetClassLoaderClassDescriptors()
933 art::ScopedObjectAccess soa(self); in GetClassLoaderClassDescriptors()
934 art::StackHandleScope<1> hs(self); in GetClassLoaderClassDescriptors()
935 art::Handle<art::mirror::ClassLoader> class_loader( in GetClassLoaderClassDescriptors()
936 hs.NewHandle(soa.Decode<art::mirror::ClassLoader>(loader))); in GetClassLoaderClassDescriptors()
937 if (class_loader->InstanceOf(art::WellKnownClasses::java_lang_BootClassLoader.Get())) { in GetClassLoaderClassDescriptors()
939 dex_files = &art::Runtime::Current()->GetClassLinker()->GetBootClassPath(); in GetClassLoaderClassDescriptors()
940 } else if (!class_loader->InstanceOf(art::WellKnownClasses::java_lang_ClassLoader.Get())) { in GetClassLoaderClassDescriptors()
943 art::WellKnownClasses::dalvik_system_BaseDexClassLoader.Get())) { in GetClassLoaderClassDescriptors()
950 art::VisitClassLoaderDexFiles( in GetClassLoaderClassDescriptors()
953 [&](const art::DexFile* dex_file) { in GetClassLoaderClassDescriptors()
974 art::Thread* self = art::Thread::Current(); in GetClassLoaderClasses()
975 art::ScopedObjectAccess soa(self); in GetClassLoaderClasses()
976 art::ObjPtr<art::mirror::ClassLoader> class_loader = in GetClassLoaderClasses()
977 soa.Decode<art::mirror::ClassLoader>(initiating_loader); in GetClassLoaderClasses()
980 } else if (!class_loader->InstanceOf(art::WellKnownClasses::java_lang_ClassLoader.Get())) { in GetClassLoaderClasses()
982 } else if (class_loader->InstanceOf(art::WellKnownClasses::java_lang_BootClassLoader.Get())) { in GetClassLoaderClasses()
987 art::ClassLinker* class_linker = art::Runtime::Current()->GetClassLinker(); in GetClassLoaderClasses()
989 art::ReaderMutexLock mu(self, *art::Locks::classlinker_classes_lock_); in GetClassLoaderClasses()
991 art::ClassTable* class_table = class_linker->ClassTableForClassLoader(class_loader); in GetClassLoaderClasses()
1000 bool operator()(art::ObjPtr<art::mirror::Class> klass) { in GetClassLoaderClasses()
1026 bool operator()(art::ObjPtr<art::mirror::Class> klass) in GetClassLoaderClasses()
1027 REQUIRES_SHARED(art::Locks::mutator_lock_) { in GetClassLoaderClasses()
1036 art::ScopedObjectAccess* soa_ptr; in GetClassLoaderClasses()
1053 art::ScopedObjectAccess soa(art::Thread::Current()); in GetClassVersionNumbers()
1057 art::ObjPtr<art::mirror::Object> jklass_obj = soa.Decode<art::mirror::Object>(jklass); in GetClassVersionNumbers()
1061 art::ObjPtr<art::mirror::Class> klass = jklass_obj->AsClass(); in GetClassVersionNumbers()
1081 art::ScopedObjectAccess soa(art::Thread::Current()); in GetSourceFileName()
1085 art::ObjPtr<art::mirror::Object> jklass_obj = soa.Decode<art::mirror::Object>(jklass); in GetSourceFileName()
1089 art::ObjPtr<art::mirror::Class> klass = jklass_obj->AsClass(); in GetSourceFileName()
1110 art::ScopedObjectAccess soa(art::Thread::Current()); in GetSourceDebugExtension()
1114 art::ObjPtr<art::mirror::Object> jklass_obj = soa.Decode<art::mirror::Object>(jklass); in GetSourceDebugExtension()
1118 art::StackHandleScope<1> hs(art::Thread::Current()); in GetSourceDebugExtension()
1119 art::Handle<art::mirror::Class> klass(hs.NewHandle(jklass_obj->AsClass())); in GetSourceDebugExtension()
1124 const char* data = art::annotations::GetSourceDebugExtension(klass); in GetSourceDebugExtension()
1139 env, static_cast<jint>(art::hiddenapi::EnforcementPolicy::kDisabled)); in DisableHiddenApiEnforcementPolicy()
1145 } else if (art::Thread::Current() == nullptr) { in GetHiddenApiEnforcementPolicy()
1150 *policy = static_cast<jint>(art::Runtime::Current()->GetHiddenApiEnforcementPolicy()); in GetHiddenApiEnforcementPolicy()
1157 } else if (art::Thread::Current() == nullptr) { in SetHiddenApiEnforcementPolicy()
1159 } else if (policy < static_cast<jint>(art::hiddenapi::EnforcementPolicy::kDisabled) || in SetHiddenApiEnforcementPolicy()
1160 policy > static_cast<jint>(art::hiddenapi::EnforcementPolicy::kMax)) { in SetHiddenApiEnforcementPolicy()
1162 << static_cast<jint>(art::hiddenapi::EnforcementPolicy::kDisabled) in SetHiddenApiEnforcementPolicy()
1163 << " and " << static_cast<jint>(art::hiddenapi::EnforcementPolicy::kMax); in SetHiddenApiEnforcementPolicy()
1166 art::Runtime::Current()->SetHiddenApiEnforcementPolicy( in SetHiddenApiEnforcementPolicy()
1167 static_cast<art::hiddenapi::EnforcementPolicy>(policy)); in SetHiddenApiEnforcementPolicy()