Lines Matching refs:art
90 static std::unique_ptr<const art::DexFile> MakeSingleDexFile(art::Thread* self, in MakeSingleDexFile()
95 REQUIRES_SHARED(art::Locks::mutator_lock_) { in MakeSingleDexFile()
98 art::ArrayRef<const unsigned char> final_data(final_dex_data, final_len); in MakeSingleDexFile()
99 art::MemMap map = Redefiner::MoveDataToMemMap(orig_location, final_data, &error_msg); in MakeSingleDexFile()
108 if (map.Size() < sizeof(art::DexFile::Header)) { in MakeSingleDexFile()
110 art::ThrowClassFormatError(nullptr, in MakeSingleDexFile()
115 uint32_t checksum = reinterpret_cast<const art::DexFile::Header*>(map.Begin())->checksum_; in MakeSingleDexFile()
117 const art::ArtDexFileLoader dex_file_loader; in MakeSingleDexFile()
118 std::unique_ptr<const art::DexFile> dex_file(dex_file_loader.Open(map_name, in MakeSingleDexFile()
126 art::ThrowClassFormatError(nullptr, in MakeSingleDexFile()
135 art::ThrowClassFormatError( in MakeSingleDexFile()
163 struct ClassCallback : public art::ClassLoadCallback {
165 art::Handle<art::mirror::Class> klass, in ClassPreDefine()
166 art::Handle<art::mirror::ClassLoader> class_loader, in ClassPreDefine()
167 const art::DexFile& initial_dex_file, in ClassPreDefine()
168 const art::dex::ClassDef& initial_class_def ATTRIBUTE_UNUSED, in ClassPreDefine()
169 /*out*/art::DexFile const** final_dex_file, in ClassPreDefine()
170 /*out*/art::dex::ClassDef const** final_class_def) in ClassPreDefine()
171 override REQUIRES_SHARED(art::Locks::mutator_lock_) { in ClassPreDefine()
193 art::Thread* self = art::Thread::Current(); in ClassPreDefine()
217 art::StackHandleScope<2> hs(self); in ClassPreDefine()
220 art::Handle<art::mirror::ClassExt> ext = in ClassPreDefine()
221 hs.NewHandle(art::mirror::Class::EnsureExtDataPresent(klass, self)); in ClassPreDefine()
233 art::MutableHandle<art::mirror::Object> arr(hs.NewHandle<art::mirror::Object>(nullptr)); in ClassPreDefine()
238 art::JValue val; in ClassPreDefine()
240 arr.Assign(art::BoxPrimitive(art::Primitive::kPrimLong, val)); in ClassPreDefine()
242 arr.Assign(art::mirror::ByteArray::AllocateAndFill( in ClassPreDefine()
253 std::unique_ptr<const art::DexFile> dex_file(MakeSingleDexFile(self, in ClassPreDefine()
279 void ClassLoad(art::Handle<art::mirror::Class> klass) override in ClassLoad()
280 REQUIRES_SHARED(art::Locks::mutator_lock_) { in ClassLoad()
282 art::Thread* thread = art::Thread::Current(); in ClassLoad()
285 art::ObjPtr<art::mirror::Object> peer(thread->GetPeer()); in ClassLoad()
300 void ClassPrepare(art::Handle<art::mirror::Class> temp_klass, in ClassPrepare()
301 art::Handle<art::mirror::Class> klass) in ClassPrepare()
302 override REQUIRES_SHARED(art::Locks::mutator_lock_) { in ClassPrepare()
304 art::Thread* thread = art::Thread::Current(); in ClassPrepare()
312 art::ObjPtr<art::mirror::Object> peer(thread->GetPeer()); in ClassPrepare()
328 void AddTempClass(art::Thread* self, jclass klass) { in AddTempClass()
334 void HandleTempClass(art::Thread* self, in HandleTempClass()
335 art::Handle<art::mirror::Class> temp_klass, in HandleTempClass()
336 art::Handle<art::mirror::Class> klass) in HandleTempClass()
337 REQUIRES_SHARED(art::Locks::mutator_lock_) { in HandleTempClass()
346 … if (temp_klass.Get() == art::ObjPtr<art::mirror::Class>::DownCast(self->DecodeJObject(*it))) { in HandleTempClass()
359 void FixupTempClass(art::Thread* self, in FixupTempClass()
360 art::Handle<art::mirror::Class> temp_klass, in FixupTempClass()
361 art::Handle<art::mirror::Class> klass) in FixupTempClass()
362 REQUIRES_SHARED(art::Locks::mutator_lock_) { in FixupTempClass()
364 art::gc::Heap* heap = art::Runtime::Current()->GetHeap(); in FixupTempClass()
371 art::ScopedThreadSuspension sts(self, art::kWaitingForVisitObjects); in FixupTempClass()
372 art::ScopedSuspendAll ssa("FixupTempClass"); in FixupTempClass()
374 art::mirror::Class* input = temp_klass.Get(); in FixupTempClass()
375 art::mirror::Class* output = klass.Get(); in FixupTempClass()
386 class RootUpdater : public art::RootVisitor {
388 RootUpdater(const art::mirror::Class* input, art::mirror::Class* output) in RootUpdater()
391 void VisitRoots(art::mirror::Object*** roots, in VisitRoots()
393 const art::RootInfo& info ATTRIBUTE_UNUSED) in VisitRoots()
402 void VisitRoots(art::mirror::CompressedReference<art::mirror::Object>** roots, in VisitRoots()
404 const art::RootInfo& info ATTRIBUTE_UNUSED) in VisitRoots()
405 override REQUIRES_SHARED(art::Locks::mutator_lock_) { in VisitRoots()
414 const art::mirror::Class* input_;
415 art::mirror::Class* output_;
418 void FixupGlobalReferenceTables(art::mirror::Class* input, art::mirror::Class* output) in FixupGlobalReferenceTables()
419 REQUIRES(art::Locks::mutator_lock_) { in FixupGlobalReferenceTables()
420 art::JavaVMExt* java_vm = art::Runtime::Current()->GetJavaVM(); in FixupGlobalReferenceTables()
426 class WeakGlobalUpdate : public art::IsMarkedVisitor { in FixupGlobalReferenceTables()
428 WeakGlobalUpdate(art::mirror::Class* root_input, art::mirror::Class* root_output) in FixupGlobalReferenceTables()
431 art::mirror::Object* IsMarked(art::mirror::Object* obj) override { in FixupGlobalReferenceTables()
439 const art::mirror::Class* input_; in FixupGlobalReferenceTables()
440 art::mirror::Class* output_; in FixupGlobalReferenceTables()
446 void FixupLocalReferenceTables(art::Thread* self, in FixupLocalReferenceTables()
447 art::mirror::Class* input, in FixupLocalReferenceTables()
448 art::mirror::Class* output) in FixupLocalReferenceTables()
449 REQUIRES(art::Locks::mutator_lock_) { in FixupLocalReferenceTables()
452 LocalUpdate(const art::mirror::Class* root_input, art::mirror::Class* root_output) in FixupLocalReferenceTables()
455 static void Callback(art::Thread* t, void* arg) REQUIRES(art::Locks::mutator_lock_) { in FixupLocalReferenceTables()
461 &local_update, art::RootInfo(art::kRootJNILocal, t->GetThreadId())); in FixupLocalReferenceTables()
465 const art::mirror::Class* input_; in FixupLocalReferenceTables()
466 art::mirror::Class* output_; in FixupLocalReferenceTables()
469 art::MutexLock mu(self, *art::Locks::thread_list_lock_); in FixupLocalReferenceTables()
470 art::Runtime::Current()->GetThreadList()->ForEach(LocalUpdate::Callback, &local_upd); in FixupLocalReferenceTables()
473 void FixupHeap(art::mirror::Class* input, art::mirror::Class* output) in FixupHeap()
474 REQUIRES(art::Locks::mutator_lock_) { in FixupHeap()
477 HeapFixupVisitor(const art::mirror::Class* root_input, art::mirror::Class* root_output) in FixupHeap()
480 void operator()(art::mirror::Object* src, in FixupHeap()
481 art::MemberOffset field_offset, in FixupHeap()
483 REQUIRES_SHARED(art::Locks::mutator_lock_) { in FixupHeap()
484 art::mirror::HeapReference<art::mirror::Object>* trg = in FixupHeap()
493 void operator()(art::ObjPtr<art::mirror::Class> klass ATTRIBUTE_UNUSED, in FixupHeap()
494 art::ObjPtr<art::mirror::Reference> reference) const in FixupHeap()
495 REQUIRES_SHARED(art::Locks::mutator_lock_) { in FixupHeap()
496 art::mirror::Object* val = reference->GetReferent(); in FixupHeap()
502 void VisitRoot(art::mirror::CompressedReference<art::mirror::Object>* root ATTRIBUTE_UNUSED) in FixupHeap()
508 art::mirror::CompressedReference<art::mirror::Object>* root ATTRIBUTE_UNUSED) const { in FixupHeap()
513 const art::mirror::Class* input_; in FixupHeap()
514 art::mirror::Class* output_; in FixupHeap()
517 auto object_visitor = [&](art::mirror::Object* obj) { in FixupHeap()
520 art::Runtime::Current()->GetHeap()->VisitObjectsPaused(object_visitor); in FixupHeap()
536 art::ScopedThreadStateChange stsc(art::Thread::Current(), in Register()
537 art::ThreadState::kWaitingForDebuggerToAttach); in Register()
538 art::ScopedSuspendAll ssa("Add load callback"); in Register()
539 art::Runtime::Current()->GetRuntimeCallbacks()->AddClassLoadCallback(&gClassCallback); in Register()
543 art::ScopedThreadStateChange stsc(art::Thread::Current(), in Unregister()
544 art::ThreadState::kWaitingForDebuggerToAttach); in Unregister()
545 art::ScopedSuspendAll ssa("Remove thread callback"); in Unregister()
546 art::Runtime* runtime = art::Runtime::Current(); in Unregister()
554 art::ScopedObjectAccess soa(art::Thread::Current()); in GetClassFields()
555 art::ObjPtr<art::mirror::Class> klass = soa.Decode<art::mirror::Class>(jklass); in GetClassFields()
571 art::IterationRange<art::StrideIterator<art::ArtField>> ifields = klass->GetIFields(); in GetClassFields()
572 art::IterationRange<art::StrideIterator<art::ArtField>> sfields = klass->GetSFields(); in GetClassFields()
583 for (art::ArtField& field : sfields) { in GetClassFields()
584 field_array[array_idx] = art::jni::EncodeArtField(&field); in GetClassFields()
587 for (art::ArtField& field : ifields) { in GetClassFields()
588 field_array[array_idx] = art::jni::EncodeArtField(&field); in GetClassFields()
602 art::ScopedObjectAccess soa(art::Thread::Current()); in GetClassMethods()
603 art::ObjPtr<art::mirror::Class> klass = soa.Decode<art::mirror::Class>(jklass); in GetClassMethods()
627 if (art::kIsDebugBuild) { in GetClassMethods()
629 for (auto& m ATTRIBUTE_UNUSED : klass->GetDeclaredMethods(art::kRuntimePointerSize)) { in GetClassMethods()
636 for (auto& m : klass->GetDeclaredMethods(art::kRuntimePointerSize)) { in GetClassMethods()
637 method_array[array_idx] = art::jni::EncodeArtMethod(&m); in GetClassMethods()
651 art::ScopedObjectAccess soa(art::Thread::Current()); in GetImplementedInterfaces()
652 art::ObjPtr<art::mirror::Class> klass = soa.Decode<art::mirror::Class>(jklass); in GetImplementedInterfaces()
677 art::StackHandleScope<1> hs(soa.Self()); in GetImplementedInterfaces()
678 art::Handle<art::mirror::Class> h_klass(hs.NewHandle(klass)); in GetImplementedInterfaces()
681 art::ObjPtr<art::mirror::Class> inf_klass = in GetImplementedInterfaces()
682 art::mirror::Class::ResolveDirectInterface(soa.Self(), h_klass, idx); in GetImplementedInterfaces()
702 art::ScopedObjectAccess soa(art::Thread::Current()); in GetClassSignature()
703 art::ObjPtr<art::mirror::Class> klass = soa.Decode<art::mirror::Class>(jklass); in GetClassSignature()
724 art::StackHandleScope<1> hs(soa.Self()); in GetClassSignature()
725 art::Handle<art::mirror::Class> h_klass = hs.NewHandle(klass); in GetClassSignature()
726 art::ObjPtr<art::mirror::ObjectArray<art::mirror::String>> str_array = in GetClassSignature()
727 art::annotations::GetSignatureAnnotationForClass(h_klass); in GetClassSignature()
756 art::ScopedObjectAccess soa(art::Thread::Current()); in GetClassStatus()
757 art::ObjPtr<art::mirror::Class> klass = soa.Decode<art::mirror::Class>(jklass); in GetClassStatus()
790 art::ScopedObjectAccess soa(art::Thread::Current()); in ClassIsT()
791 art::ObjPtr<art::mirror::Class> klass = soa.Decode<art::mirror::Class>(jklass); in ClassIsT()
807 auto test = [](art::ObjPtr<art::mirror::Class> klass) REQUIRES_SHARED(art::Locks::mutator_lock_) { in IsInterface()
816 auto test = [](art::ObjPtr<art::mirror::Class> klass) REQUIRES_SHARED(art::Locks::mutator_lock_) { in IsArrayClass()
823 static uint32_t ClassGetModifiers(art::Thread* self, art::ObjPtr<art::mirror::Class> klass) in ClassGetModifiers()
824 REQUIRES_SHARED(art::Locks::mutator_lock_) { in ClassGetModifiers()
827 if ((component_modifiers & art::kAccInterface) != 0) { in ClassGetModifiers()
828 component_modifiers &= ~(art::kAccInterface | art::kAccStatic); in ClassGetModifiers()
830 return art::kAccAbstract | art::kAccFinal | component_modifiers; in ClassGetModifiers()
833 uint32_t modifiers = klass->GetAccessFlags() & art::kAccJavaFlagsMask; in ClassGetModifiers()
835 art::StackHandleScope<1> hs(self); in ClassGetModifiers()
836 art::Handle<art::mirror::Class> h_klass(hs.NewHandle(klass)); in ClassGetModifiers()
837 return art::mirror::Class::GetInnerClassFlags(h_klass, modifiers); in ClassGetModifiers()
843 art::ScopedObjectAccess soa(art::Thread::Current()); in GetClassModifiers()
844 art::ObjPtr<art::mirror::Class> klass = soa.Decode<art::mirror::Class>(jklass); in GetClassModifiers()
861 art::ScopedObjectAccess soa(art::Thread::Current()); in GetClassLoader()
862 art::ObjPtr<art::mirror::Class> klass = soa.Decode<art::mirror::Class>(jklass); in GetClassLoader()
878 const std::vector<const art::DexFile*>& dex_files, in CopyClassDescriptors()
892 for (const art::DexFile* dex_file : dex_files) { in CopyClassDescriptors()
923 art::Thread* self = art::Thread::Current(); in GetClassLoaderClassDescriptors()
931 art::JNIEnvExt* jnienv = self->GetJniEnv(); in GetClassLoaderClassDescriptors()
933 jnienv->IsInstanceOf(loader, art::WellKnownClasses::java_lang_BootClassLoader)) { in GetClassLoaderClassDescriptors()
936 art::Runtime::Current()->GetClassLinker()->GetBootClassPath(), in GetClassLoaderClassDescriptors()
940 if (!jnienv->IsInstanceOf(loader, art::WellKnownClasses::java_lang_ClassLoader)) { in GetClassLoaderClassDescriptors()
943 art::WellKnownClasses::dalvik_system_BaseDexClassLoader)) { in GetClassLoaderClassDescriptors()
951 art::ScopedObjectAccess soa(self); in GetClassLoaderClassDescriptors()
952 art::StackHandleScope<1> hs(self); in GetClassLoaderClassDescriptors()
953 art::Handle<art::mirror::ClassLoader> class_loader( in GetClassLoaderClassDescriptors()
954 hs.NewHandle(soa.Decode<art::mirror::ClassLoader>(loader))); in GetClassLoaderClassDescriptors()
955 std::vector<const art::DexFile*> dex_files; in GetClassLoaderClassDescriptors()
956 art::VisitClassLoaderDexFiles( in GetClassLoaderClassDescriptors()
959 [&](const art::DexFile* dex_file) { in GetClassLoaderClassDescriptors()
976 art::Thread* self = art::Thread::Current(); in GetClassLoaderClasses()
978 art::WellKnownClasses::java_lang_ClassLoader)) { in GetClassLoaderClasses()
982 art::WellKnownClasses::java_lang_BootClassLoader)) { in GetClassLoaderClasses()
987 art::ScopedObjectAccess soa(self); in GetClassLoaderClasses()
988 art::ObjPtr<art::mirror::ClassLoader> class_loader = in GetClassLoaderClasses()
989 soa.Decode<art::mirror::ClassLoader>(initiating_loader); in GetClassLoaderClasses()
991 art::ClassLinker* class_linker = art::Runtime::Current()->GetClassLinker(); in GetClassLoaderClasses()
993 art::ReaderMutexLock mu(self, *art::Locks::classlinker_classes_lock_); in GetClassLoaderClasses()
995 art::ClassTable* class_table = class_linker->ClassTableForClassLoader(class_loader); in GetClassLoaderClasses()
1004 bool operator()(art::ObjPtr<art::mirror::Class> klass) { in GetClassLoaderClasses()
1030 bool operator()(art::ObjPtr<art::mirror::Class> klass) in GetClassLoaderClasses()
1031 REQUIRES_SHARED(art::Locks::mutator_lock_) { in GetClassLoaderClasses()
1040 art::ScopedObjectAccess* soa_ptr; in GetClassLoaderClasses()
1057 art::ScopedObjectAccess soa(art::Thread::Current()); in GetClassVersionNumbers()
1061 art::ObjPtr<art::mirror::Object> jklass_obj = soa.Decode<art::mirror::Object>(jklass); in GetClassVersionNumbers()
1065 art::ObjPtr<art::mirror::Class> klass = jklass_obj->AsClass(); in GetClassVersionNumbers()
1085 art::ScopedObjectAccess soa(art::Thread::Current()); in GetSourceFileName()
1089 art::ObjPtr<art::mirror::Object> jklass_obj = soa.Decode<art::mirror::Object>(jklass); in GetSourceFileName()
1093 art::ObjPtr<art::mirror::Class> klass = jklass_obj->AsClass(); in GetSourceFileName()
1114 art::ScopedObjectAccess soa(art::Thread::Current()); in GetSourceDebugExtension()
1118 art::ObjPtr<art::mirror::Object> jklass_obj = soa.Decode<art::mirror::Object>(jklass); in GetSourceDebugExtension()
1122 art::StackHandleScope<1> hs(art::Thread::Current()); in GetSourceDebugExtension()
1123 art::Handle<art::mirror::Class> klass(hs.NewHandle(jklass_obj->AsClass())); in GetSourceDebugExtension()
1128 const char* data = art::annotations::GetSourceDebugExtension(klass); in GetSourceDebugExtension()
1143 env, static_cast<jint>(art::hiddenapi::EnforcementPolicy::kDisabled)); in DisableHiddenApiEnforcementPolicy()
1149 } else if (art::Thread::Current() == nullptr) { in GetHiddenApiEnforcementPolicy()
1154 *policy = static_cast<jint>(art::Runtime::Current()->GetHiddenApiEnforcementPolicy()); in GetHiddenApiEnforcementPolicy()
1161 } else if (art::Thread::Current() == nullptr) { in SetHiddenApiEnforcementPolicy()
1163 } else if (policy < static_cast<jint>(art::hiddenapi::EnforcementPolicy::kDisabled) || in SetHiddenApiEnforcementPolicy()
1164 policy > static_cast<jint>(art::hiddenapi::EnforcementPolicy::kMax)) { in SetHiddenApiEnforcementPolicy()
1166 << static_cast<jint>(art::hiddenapi::EnforcementPolicy::kDisabled) in SetHiddenApiEnforcementPolicy()
1167 << " and " << static_cast<jint>(art::hiddenapi::EnforcementPolicy::kMax); in SetHiddenApiEnforcementPolicy()
1170 art::Runtime::Current()->SetHiddenApiEnforcementPolicy( in SetHiddenApiEnforcementPolicy()
1171 static_cast<art::hiddenapi::EnforcementPolicy>(policy)); in SetHiddenApiEnforcementPolicy()