Lines Matching refs:mirror
42 namespace mirror {
57 typedef bool (ClassVisitor)(mirror::Class* c, void* arg);
75 mirror::Class* FindClass(Thread* self, const char* descriptor,
76 Handle<mirror::ClassLoader> class_loader)
81 mirror::Class* FindClassInPathClassLoader(ScopedObjectAccessAlreadyRunnable& soa,
83 Handle<mirror::ClassLoader> class_loader)
88 mirror::Class* FindSystemClass(Thread* self, const char* descriptor)
92 mirror::Class* FindArrayClass(Thread* self, mirror::Class** element_class)
99 mirror::Class* DefineClass(Thread* self, const char* descriptor, size_t hash,
100 Handle<mirror::ClassLoader> class_loader,
106 mirror::Class* LookupClass(const char* descriptor, size_t hash,
107 mirror::ClassLoader* class_loader)
112 void LookupClasses(const char* descriptor, std::vector<mirror::Class*>& classes)
116 mirror::Class* FindPrimitiveClass(char type) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
120 bool RemoveClass(const char* descriptor, mirror::ClassLoader* class_loader)
139 mirror::String* ResolveString(uint32_t string_idx, mirror::ArtMethod* referrer)
144 mirror::String* ResolveString(const DexFile& dex_file, uint32_t string_idx,
145 Handle<mirror::DexCache> dex_cache)
151 mirror::Class* ResolveType(const DexFile& dex_file, uint16_t type_idx, mirror::Class* referrer)
157 mirror::Class* ResolveType(uint16_t type_idx, mirror::ArtMethod* referrer)
160 mirror::Class* ResolveType(uint16_t type_idx, mirror::ArtField* referrer)
167 mirror::Class* ResolveType(const DexFile& dex_file, uint16_t type_idx,
168 Handle<mirror::DexCache> dex_cache,
169 Handle<mirror::ClassLoader> class_loader)
177 mirror::ArtMethod* ResolveMethod(const DexFile& dex_file,
179 Handle<mirror::DexCache> dex_cache,
180 Handle<mirror::ClassLoader> class_loader,
181 Handle<mirror::ArtMethod> referrer,
185 mirror::ArtMethod* GetResolvedMethod(uint32_t method_idx, mirror::ArtMethod* referrer,
188 mirror::ArtMethod* ResolveMethod(Thread* self, uint32_t method_idx, mirror::ArtMethod** referrer,
192 mirror::ArtField* GetResolvedField(uint32_t field_idx, mirror::Class* field_declaring_class)
194 mirror::ArtField* ResolveField(uint32_t field_idx, mirror::ArtMethod* referrer,
203 mirror::ArtField* ResolveField(const DexFile& dex_file,
205 Handle<mirror::DexCache> dex_cache,
206 Handle<mirror::ClassLoader> class_loader,
214 mirror::ArtField* ResolveFieldJLS(const DexFile& dex_file, uint32_t field_idx,
215 Handle<mirror::DexCache> dex_cache,
216 Handle<mirror::ClassLoader> class_loader)
220 const char* MethodShorty(uint32_t method_idx, mirror::ArtMethod* referrer, uint32_t* length)
226 bool EnsureInitialized(Handle<mirror::Class> c, bool can_init_fields, bool can_init_parents)
236 void RegisterDexFile(const DexFile& dex_file, Handle<mirror::DexCache> dex_cache)
265 mirror::DexCache* FindDexCache(const DexFile& dex_file)
270 void FixupDexCaches(mirror::ArtMethod* resolution_method)
303 mirror::ObjectArray<T>* AllocObjectArray(Thread* self, size_t length)
306 mirror::ObjectArray<mirror::Class>* AllocClassArray(Thread* self, size_t length)
309 mirror::ObjectArray<mirror::String>* AllocStringArray(Thread* self, size_t length)
312 mirror::ObjectArray<mirror::ArtMethod>* AllocArtMethodArray(Thread* self, size_t length)
315 mirror::IfTable* AllocIfTable(Thread* self, size_t ifcount)
318 mirror::ObjectArray<mirror::ArtField>* AllocArtFieldArray(Thread* self, size_t length)
321 mirror::ObjectArray<mirror::StackTraceElement>* AllocStackTraceElementArray(Thread* self,
325 void VerifyClass(Handle<mirror::Class> klass) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
326 bool VerifyClassUsingOatFile(const DexFile& dex_file, mirror::Class* klass,
327 mirror::Class::Status& oat_file_class_status)
330 Handle<mirror::Class> klass)
332 void ResolveMethodExceptionHandlerTypes(const DexFile& dex_file, mirror::ArtMethod* klass)
335 mirror::Class* CreateProxyClass(ScopedObjectAccessAlreadyRunnable& soa, jstring name,
339 std::string GetDescriptorForProxy(mirror::Class* proxy_class)
341 mirror::ArtMethod* FindMethodForProxy(mirror::Class* proxy_class,
342 mirror::ArtMethod* proxy_method)
347 const void* GetQuickOatCodeFor(mirror::ArtMethod* method)
350 const void* GetPortableOatCodeFor(mirror::ArtMethod* method, bool* have_portable_code)
365 const void* GetOatMethodQuickCodeFor(mirror::ArtMethod* method)
402 mirror::Class* InsertClass(const char* descriptor, mirror::Class* klass, size_t hash)
407 mirror::ArtMethod* AllocArtMethod(Thread* self) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
409 mirror::ObjectArray<mirror::Class>* GetClassRoots() SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) { in GetClassRoots()
410 mirror::ObjectArray<mirror::Class>* class_roots = class_roots_.Read(); in GetClassRoots()
427 bool MayBeCalledWithDirectCodePointer(mirror::ArtMethod* m)
431 bool FindOatMethodFor(mirror::ArtMethod* method, OatFile::OatMethod* oat_method)
441 mirror::Class* AllocClass(Thread* self, mirror::Class* java_lang_Class, uint32_t class_size)
447 mirror::Class* AllocClass(Thread* self, uint32_t class_size)
449 mirror::DexCache* AllocDexCache(Thread* self, const DexFile& dex_file)
451 mirror::ArtField* AllocArtField(Thread* self) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
453 mirror::Class* CreatePrimitiveClass(Thread* self, Primitive::Type type)
455 mirror::Class* InitializePrimitiveClass(mirror::Class* primitive_class, Primitive::Type type)
459 mirror::Class* CreateArrayClass(Thread* self, const char* descriptor, size_t hash,
460 Handle<mirror::ClassLoader> class_loader)
465 void AppendToBootClassPath(const DexFile& dex_file, Handle<mirror::DexCache> dex_cache)
469 mirror::Class* c, SafeMap<uint32_t, mirror::ArtField*>& field_map)
479 Handle<mirror::Class> klass,
480 mirror::ClassLoader* class_loader)
484 Handle<mirror::Class> klass,
485 mirror::ClassLoader* class_loader,
490 Handle<mirror::Class> klass, Handle<mirror::ArtField> dst)
493 mirror::ArtMethod* LoadMethod(Thread* self, const DexFile& dex_file,
495 Handle<mirror::Class> klass)
498 void FixupStaticTrampolines(mirror::Class* klass) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
505 void RegisterDexFileLocked(const DexFile& dex_file, Handle<mirror::DexCache> dex_cache)
511 bool InitializeClass(Handle<mirror::Class> klass, bool can_run_clinit,
514 bool WaitForInitializeClass(Handle<mirror::Class> klass, Thread* self,
515 ObjectLock<mirror::Class>& lock);
516 bool ValidateSuperClassDescriptors(Handle<mirror::Class> klass)
520 Handle<mirror::ClassLoader> class_loader1,
521 Handle<mirror::ClassLoader> class_loader2)
524 bool IsSameMethodSignatureInDifferentClassContexts(Thread* self, mirror::ArtMethod* method,
525 mirror::Class* klass1,
526 mirror::Class* klass2)
529 bool LinkClass(Thread* self, const char* descriptor, Handle<mirror::Class> klass,
530 Handle<mirror::ObjectArray<mirror::Class>> interfaces,
531 mirror::Class** new_class)
534 bool LinkSuperClass(Handle<mirror::Class> klass)
537 bool LoadSuperAndInterfaces(Handle<mirror::Class> klass, const DexFile& dex_file)
540 bool LinkMethods(Thread* self, Handle<mirror::Class> klass,
541 Handle<mirror::ObjectArray<mirror::Class>> interfaces,
542 StackHandleScope<mirror::Class::kImtSize>* out_imt)
545 bool LinkVirtualMethods(Thread* self, Handle<mirror::Class> klass)
548 bool LinkInterfaceMethods(Thread* const self, Handle<mirror::Class> klass,
549 Handle<mirror::ObjectArray<mirror::Class>> interfaces,
550 StackHandleScope<mirror::Class::kImtSize>* out_imt)
553 bool LinkStaticFields(Handle<mirror::Class> klass, size_t* class_size)
555 bool LinkInstanceFields(Handle<mirror::Class> klass)
557 bool LinkFields(Handle<mirror::Class> klass, bool is_static, size_t* class_size)
559 void LinkCode(Handle<mirror::ArtMethod> method, const OatFile::OatClass* oat_class,
563 void CreateReferenceInstanceOffsets(Handle<mirror::Class> klass)
565 void CreateReferenceStaticOffsets(Handle<mirror::Class> klass)
567 void CreateReferenceOffsets(Handle<mirror::Class> klass, bool is_static,
579 mirror::DexCache* GetDexCache(size_t idx) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_, dex_lock_);
659 mirror::ArtMethod* CreateProxyConstructor(Thread* self, Handle<mirror::Class> klass,
660 mirror::Class* proxy_class)
662 mirror::ArtMethod* CreateProxyMethod(Thread* self, Handle<mirror::Class> klass,
663 Handle<mirror::ArtMethod> prototype)
668 void EnsurePreverifiedMethods(Handle<mirror::Class> c)
671 mirror::Class* LookupClassFromTableLocked(const char* descriptor,
672 mirror::ClassLoader* class_loader,
676 mirror::Class* UpdateClass(const char* descriptor, mirror::Class* klass, size_t hash)
680 mirror::Class* LookupClassFromImage(const char* descriptor)
689 mirror::Class* EnsureResolved(Thread* self, const char* descriptor, mirror::Class* klass)
692 void FixupTemporaryDeclaringClass(mirror::Class* temp_class, mirror::Class* new_class)
699 std::vector<GcRoot<mirror::DexCache>> dex_caches_ GUARDED_BY(dex_lock_);
705 std::size_t operator()(const GcRoot<mirror::Class>& root) const NO_THREAD_SAFETY_ANALYSIS;
706 bool operator()(const GcRoot<mirror::Class>& a, const GcRoot<mirror::Class>& b)
709 std::size_t operator()(const std::pair<const char*, mirror::ClassLoader*>& element) const
711 bool operator()(const GcRoot<mirror::Class>& a,
712 const std::pair<const char*, mirror::ClassLoader*>& b)
715 bool operator()(const GcRoot<mirror::Class>& a, const char* descriptor)
721 void MakeEmpty(GcRoot<mirror::Class>& item) const { in MakeEmpty()
722 item = GcRoot<mirror::Class>(); in MakeEmpty()
724 bool IsEmpty(const GcRoot<mirror::Class>& item) const { in IsEmpty()
731 typedef HashSet<GcRoot<mirror::Class>, GcRootEmptyFn, ClassDescriptorHashEquals,
732 ClassDescriptorHashEquals, TrackingAllocator<GcRoot<mirror::Class>, kAllocatorTagClassTable>>
738 std::vector<GcRoot<mirror::Class>> new_class_roots_;
786 GcRoot<mirror::ObjectArray<mirror::Class>> class_roots_;
788 ALWAYS_INLINE mirror::Class* GetClassRoot(ClassRoot class_root)
791 void SetClassRoot(ClassRoot class_root, mirror::Class* klass)
803 GcRoot<mirror::IfTable> array_iftable_;
808 GcRoot<mirror::Class> find_array_class_cache_[kFindArrayCacheSize];
835 FRIEND_TEST(mirror::DexCacheTest, Open);