Home | History | Annotate | Download | only in runtime

Lines Matching refs:mirror

36 #include "mirror/class.h"
53 namespace mirror {
68 } // namespace mirror
90 virtual bool operator()(ObjPtr<mirror::Class> klass) = 0;
96 virtual void Visit(ObjPtr<mirror::ClassLoader> class_loader)
102 // Well known mirror::Class roots accessed via GetClassRoot.
177 Handle<mirror::ClassLoader> class_loader,
193 mirror::Class* FindClass(Thread* self,
195 Handle<mirror::ClassLoader> class_loader)
201 mirror::Class* FindSystemClass(Thread* self, const char* descriptor)
204 return FindClass(self, descriptor, ScopedNullHandle<mirror::ClassLoader>());
208 mirror::Class* FindArrayClass(Thread* self, ObjPtr<mirror::Class>* element_class)
218 mirror::Class* DefineClass(Thread* self,
221 Handle<mirror::ClassLoader> class_loader,
229 mirror::Class* LookupClass(Thread* self,
231 ObjPtr<mirror::ClassLoader> class_loader)
236 void LookupClasses(const char* descriptor, std::vector<ObjPtr<mirror::Class>>& classes)
240 mirror::Class* FindPrimitiveClass(char type) REQUIRES_SHARED(Locks::mutator_lock_);
250 ObjPtr<mirror::String> ResolveString(dex::StringIndex string_idx,
251 Handle<mirror::DexCache> dex_cache)
256 ObjPtr<mirror::String> LookupString(dex::StringIndex string_idx,
257 ObjPtr<mirror::DexCache> dex_cache)
263 ObjPtr<mirror::Class> ResolveType(dex::TypeIndex type_idx, ObjPtr<mirror::Class> referrer)
270 ObjPtr<mirror::Class> ResolveType(dex::TypeIndex type_idx, ArtMethod* referrer)
277 ObjPtr<mirror::Class> ResolveType(dex::TypeIndex type_idx,
278 Handle<mirror::DexCache> dex_cache,
279 Handle<mirror::ClassLoader> class_loader)
286 ObjPtr<mirror::Class> LookupResolvedType(dex::TypeIndex type_idx,
287 ObjPtr<mirror::Class> referrer)
293 ObjPtr<mirror::Class> LookupResolvedType(dex::TypeIndex type_idx, ArtMethod* referrer)
299 ObjPtr<mirror::Class> LookupResolvedType(dex::TypeIndex type_idx,
300 ObjPtr<mirror::DexCache> dex_cache,
301 ObjPtr<mirror::ClassLoader> class_loader)
313 ObjPtr<mirror::DexCache> dex_cache,
314 ObjPtr<mirror::ClassLoader> class_loader)
318 ArtMethod* FindResolvedMethod(ObjPtr<mirror::Class> klass,
319 ObjPtr<mirror::DexCache> dex_cache,
320 ObjPtr<mirror::ClassLoader> class_loader,
327 ArtMethod* FindIncompatibleMethod(ObjPtr<mirror::Class> klass,
328 ObjPtr<mirror::DexCache> dex_cache,
329 ObjPtr<mirror::ClassLoader> class_loader,
339 Handle<mirror::DexCache> dex_cache,
340 Handle<mirror::ClassLoader> class_loader,
355 Handle<mirror::DexCache> dex_cache,
356 Handle<mirror::ClassLoader> class_loader)
371 Handle<mirror::DexCache> dex_cache,
372 Handle<mirror::ClassLoader> class_loader,
382 Handle<mirror::DexCache> dex_cache,
383 Handle<mirror::ClassLoader> class_loader)
391 ArtField* FindResolvedField(ObjPtr<mirror::Class> klass,
392 ObjPtr<mirror::DexCache> dex_cache,
393 ObjPtr<mirror::ClassLoader> class_loader,
402 ArtField* FindResolvedFieldJLS(ObjPtr<mirror::Class> klass,
403 ObjPtr<mirror::DexCache> dex_cache,
404 ObjPtr<mirror::ClassLoader> class_loader,
410 ObjPtr<mirror::MethodType> ResolveMethodType(Thread* self,
412 Handle<mirror::DexCache> dex_cache,
413 Handle<mirror::ClassLoader> class_loader)
417 ObjPtr<mirror::MethodType> ResolveMethodType(Thread* self,
425 ObjPtr<mirror::MethodHandle> ResolveMethodHandle(Thread* self,
434 Handle<mirror::Class> c,
449 void RegisterExistingDexCache(ObjPtr<mirror::DexCache> cache,
450 ObjPtr<mirror::ClassLoader> class_loader)
453 ObjPtr<mirror::DexCache> RegisterDexFile(const DexFile& dex_file,
454 ObjPtr<mirror::ClassLoader> class_loader)
484 ObjPtr<mirror::DexCache> FindDexCache(Thread* self, const DexFile& dex_file)
487 ClassTable* FindClassTable(Thread* self, ObjPtr<mirror::DexCache> dex_cache)
499 mirror::PointerArray* AllocPointerArray(Thread* self, size_t length)
503 mirror::IfTable* AllocIfTable(Thread* self, size_t ifcount)
507 mirror::ObjectArray<mirror::StackTraceElement>* AllocStackTraceElementArray(Thread* self,
514 Handle<mirror::Class> klass,
519 ObjPtr<mirror::Class> klass,
523 void ResolveClassExceptionHandlerTypes(Handle<mirror::Class> klass)
530 mirror::Class* CreateProxyClass(ScopedObjectAccessAlreadyRunnable& soa,
537 std::string GetDescriptorForProxy(ObjPtr<mirror::Class> proxy_class)
547 mirror::Class* GetClassRoot(ClassRoot class_root) REQUIRES_SHARED(Locks::mutator_lock_);
582 mirror::Class* InsertClass(const char* descriptor, ObjPtr<mirror::Class> klass, size_t hash)
592 mirror::ObjectArray<mirror::Class>* GetClassRoots() REQUIRES_SHARED(Locks::mutator_lock_) {
593 mirror::ObjectArray<mirror::Class>* class_roots = class_roots_.Read();
632 bool ClassInClassTable(ObjPtr<mirror::Class> klass)
647 LinearAlloc* GetAllocatorForClassLoader(ObjPtr<mirror::ClassLoader> class_loader)
652 LinearAlloc* GetOrCreateAllocatorForClassLoader(ObjPtr<mirror::ClassLoader> class_loader)
657 void InsertDexFileInToClassLoader(ObjPtr<mirror::Object> dex_file,
658 ObjPtr<mirror::ClassLoader> class_loader)
669 ObjPtr<mirror::ClassLoader> class_loader)
672 ArtMethod* AddMethodToConflictTable(ObjPtr<mirror::Class> klass,
689 void FillIMTAndConflictTables(ObjPtr<mirror::Class> klass) REQUIRES_SHARED(Locks::mutator_lock_);
699 void ThrowEarlierClassFailure(ObjPtr<mirror::Class> c, bool wrap_in_no_class_def = false)
704 mirror::Class* GetHoldingClassOfCopiedMethod(ArtMethod* method)
710 ClassTable* ClassTableForClassLoader(ObjPtr<mirror::ClassLoader> class_loader)
723 bool ValidateSuperClassDescriptors(Handle<mirror::Class> klass)
757 Handle<mirror::Class> klass,
764 Handle<mirror::Class> klass,
782 Handle<mirror::Class> klass,
783 Handle<mirror::Class> supertype)
808 mirror::Class* AllocClass(Thread* self,
809 ObjPtr<mirror::Class> java_lang_Class,
814 // Alloc* convenience functions to avoid needing to pass in mirror::Class*
817 mirror::Class* AllocClass(Thread* self, uint32_t class_size)
821 mirror::DexCache* AllocDexCache(ObjPtr<mirror::String>* out_location,
828 mirror::DexCache* AllocAndInitializeDexCache(Thread* self,
835 mirror::Class* CreatePrimitiveClass(Thread* self, Primitive::Type type)
838 mirror::Class* InitializePrimitiveClass(ObjPtr<mirror::Class> primitive_class,
843 mirror::Class* CreateArrayClass(Thread* self,
846 Handle<mirror::ClassLoader> class_loader)
850 void AppendToBootClassPath(const DexFile& dex_file, ObjPtr<mirror::DexCache> dex_cache)
863 Handle<mirror::Class> klass,
864 ObjPtr<mirror::ClassLoader> class_loader)
870 Handle<mirror::Class> klass)
875 Handle<mirror::Class> klass)
878 void LoadField(const ClassDataItemIterator& it, Handle<mirror::Class> klass, ArtField* dst)
883 Handle<mirror::Class> klass, ArtMethod* dst)
886 void FixupStaticTrampolines(ObjPtr<mirror::Class> klass) REQUIRES_SHARED(Locks::mutator_lock_);
897 Handle<mirror::ClassLoader> class_loader,
898 ObjPtr<mirror::Class>* result)
907 ObjPtr<mirror::Class> FindClassInBaseDexClassLoaderClassPath(
911 Handle<mirror::ClassLoader> class_loader)
917 ObjPtr<mirror::Class> FindClassInBootClassLoaderClassPath(Thread* self,
924 ObjPtr<mirror::Class> DoLookupResolvedType(dex::TypeIndex type_idx,
925 ObjPtr<mirror::DexCache> dex_cache,
926 ObjPtr<mirror::ClassLoader> class_loader)
930 ObjPtr<mirror::Class> DoResolveType(dex::TypeIndex type_idx,
931 Handle<mirror::DexCache> dex_cache,
932 Handle<mirror::ClassLoader> class_loader)
938 mirror::Class* LookupClass(Thread* self,
941 ObjPtr<mirror::ClassLoader> class_loader)
947 ObjPtr<mirror::DexCache> dex_cache,
948 ObjPtr<mirror::ClassLoader> class_loader,
953 ObjPtr<mirror::DexCache> dex_cache,
954 ObjPtr<mirror::ClassLoader> class_loader)
960 static ObjPtr<mirror::DexCache> DecodeDexCache(Thread* self, const DexCacheData& data)
964 ObjPtr<mirror::DexCache> EnsureSameClassLoader(Thread* self,
965 ObjPtr<mirror::DexCache> dex_cache,
967 ObjPtr<mirror::ClassLoader> class_loader)
972 Handle<mirror::Class> klass,
977 bool WaitForInitializeClass(Handle<mirror::Class> klass,
979 ObjectLock<mirror::Class>& lock);
983 Handle<mirror::ClassLoader> class_loader1,
984 Handle<mirror::ClassLoader> class_loader2)
989 ObjPtr<mirror::Class> klass1,
990 ObjPtr<mirror::Class> klass2)
995 Handle<mirror::Class> klass,
996 Handle<mirror::ObjectArray<mirror::Class>> interfaces,
997 MutableHandle<mirror::Class>* h_new_class_out)
1001 bool LinkSuperClass(Handle<mirror::Class> klass)
1004 bool LoadSuperAndInterfaces(Handle<mirror::Class> klass, const DexFile& dex_file)
1009 Handle<mirror::Class> klass,
1010 Handle<mirror::ObjectArray<mirror::Class>> interfaces,
1015 mirror::MethodHandle* ResolveMethodHandleForField(Thread* self,
1020 mirror::MethodHandle* ResolveMethodHandleForMethod(Thread* self,
1115 Handle<mirror::Class> klass,
1122 Handle<mirror::Class> klass,
1123 Handle<mirror::ObjectArray<mirror::Class>> interfaces)
1154 Handle<mirror::Class> klass,
1162 Handle<mirror::Class> klass,
1168 bool LinkStaticFields(Thread* self, Handle<mirror::Class> klass, size_t* class_size)
1170 bool LinkInstanceFields(Thread* self, Handle<mirror::Class> klass)
1172 bool LinkFields(Thread* self, Handle<mirror::Class> klass, bool is_static, size_t* class_size)
1174 void CreateReferenceInstanceOffsets(Handle<mirror::Class> klass)
1190 void CreateProxyConstructor(Handle<mirror::Class> klass, ArtMethod* out)
1192 void CreateProxyMethod(Handle<mirror::Class> klass, ArtMethod* prototype, ArtMethod* out)
1197 void RegisterClassLoader(ObjPtr<mirror::ClassLoader> class_loader)
1202 ClassTable* InsertClassTableForClassLoader(ObjPtr<mirror::ClassLoader> class_loader)
1209 // when resolution has occurred. This happens in mirror::Class::SetStatus. As resolution may
1212 mirror::Class* EnsureResolved(Thread* self, const char* descriptor, ObjPtr<mirror::Class> klass)
1217 void FixupTemporaryDeclaringClass(ObjPtr<mirror::Class> temp_class,
1218 ObjPtr<mirror::Class> new_class)
1221 void SetClassRoot(ClassRoot class_root, ObjPtr<mirror::Class> klass)
1227 bool CanWeInitializeClass(ObjPtr<mirror::Class> klass,
1232 void UpdateClassMethods(ObjPtr<mirror::Class> klass,
1238 void CheckSystemClass(Thread* self, Handle<mirror::Class> c1, const char* descriptor)
1244 Handle<mirror::Class> klass,
1245 Handle<mirror::IfTable> iftable)
1258 void FillIMTFromIfTable(ObjPtr<mirror::IfTable> if_table,
1261 ObjPtr<mirror::Class> klass,
1267 void FillImtFromSuperClass(Handle<mirror::Class> klass,
1278 static bool CheckInvokeClassMismatch(ObjPtr<mirror::DexCache> dex_cache,
1284 bool CheckInvokeClassMismatch(ObjPtr<mirror::DexCache> dex_cache,
1287 ObjPtr<mirror::ClassLoader> class_loader)
1306 std::vector<GcRoot<mirror::Class>> new_class_roots_ GUARDED_BY(Locks::classlinker_classes_lock_);
1316 // Well known mirror::Class roots.
1317 GcRoot<mirror::ObjectArray<mirror::Class>> class_roots_;
1320 GcRoot<mirror::IfTable> array_iftable_;
1325 GcRoot<mirror::Class> find_array_class_cache_[kFindArrayCacheSize];
1356 ART_FRIEND_TEST(mirror::DexCacheMethodHandlesTest, Open); // for AllocDexCache
1357 ART_FRIEND_TEST(mirror::DexCacheTest, Open); // for AllocDexCache
1374 Handle<mirror::Class> klass ATTRIBUTE_UNUSED,
1375 Handle<mirror::ClassLoader> class_loader ATTRIBUTE_UNUSED,
1385 virtual void ClassLoad(Handle<mirror::Class> klass) REQUIRES_SHARED(Locks::mutator_lock_) = 0;
1389 virtual void ClassPrepare(Handle<mirror::Class> temp_klass,
1390 Handle<mirror::Class> klass) REQUIRES_SHARED(Locks::mutator_lock_) = 0;