diff options
Diffstat (limited to 'runtime/class_linker.h')
-rw-r--r-- | runtime/class_linker.h | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/runtime/class_linker.h b/runtime/class_linker.h index 8f334051ca..eaaf128527 100644 --- a/runtime/class_linker.h +++ b/runtime/class_linker.h @@ -665,7 +665,8 @@ class ClassLinker { const std::vector<const DexFile*>& dex_files, jclass loader_class, jobject parent_loader, - jobject shared_libraries = nullptr) + jobject shared_libraries = nullptr, + jobject shared_libraries_after = nullptr) REQUIRES_SHARED(Locks::mutator_lock_) REQUIRES(!Locks::dex_lock_); @@ -683,7 +684,8 @@ class ClassLinker { const std::vector<const DexFile*>& dex_files, Handle<mirror::Class> loader_class, Handle<mirror::ClassLoader> parent_loader, - Handle<mirror::ObjectArray<mirror::ClassLoader>> shared_libraries) + Handle<mirror::ObjectArray<mirror::ClassLoader>> shared_libraries, + Handle<mirror::ObjectArray<mirror::ClassLoader>> shared_libraries_after) REQUIRES_SHARED(Locks::mutator_lock_) REQUIRES(!Locks::dex_lock_); @@ -1015,6 +1017,25 @@ class ClassLinker { REQUIRES_SHARED(Locks::mutator_lock_) REQUIRES(!Locks::dex_lock_); + bool FindClassInSharedLibrariesHelper(ScopedObjectAccessAlreadyRunnable& soa, + Thread* self, + const char* descriptor, + size_t hash, + Handle<mirror::ClassLoader> class_loader, + ArtField* field, + /*out*/ ObjPtr<mirror::Class>* result) + REQUIRES_SHARED(Locks::mutator_lock_) + REQUIRES(!Locks::dex_lock_); + + bool FindClassInSharedLibrariesAfter(ScopedObjectAccessAlreadyRunnable& soa, + Thread* self, + const char* descriptor, + size_t hash, + Handle<mirror::ClassLoader> class_loader, + /*out*/ ObjPtr<mirror::Class>* result) + REQUIRES_SHARED(Locks::mutator_lock_) + REQUIRES(!Locks::dex_lock_); + // Finds the class in the classpath of the given class loader. It only searches the class loader // dex files and does not recurse into its parent. // The method checks that the provided class loader is either a PathClassLoader or a |