diff options
-rw-r--r-- | runtime/class_linker.cc | 41 | ||||
-rw-r--r-- | runtime/class_linker.h | 5 |
2 files changed, 0 insertions, 46 deletions
diff --git a/runtime/class_linker.cc b/runtime/class_linker.cc index 5d76f802ee..02528293b3 100644 --- a/runtime/class_linker.cc +++ b/runtime/class_linker.cc @@ -4827,47 +4827,6 @@ void ClassLinker::MoveClassTableToPreZygote() { VisitClassLoaders(&visitor); } -// Look up classes by hash and descriptor and put all matching ones in the result array. -class LookupClassesVisitor : public ClassLoaderVisitor { - public: - LookupClassesVisitor(const char* descriptor, - size_t hash, - std::vector<ObjPtr<mirror::Class>>* result) - : descriptor_(descriptor), - hash_(hash), - result_(result) {} - - void Visit(ObjPtr<mirror::ClassLoader> class_loader) - REQUIRES_SHARED(Locks::classlinker_classes_lock_, Locks::mutator_lock_) override { - ClassTable* const class_table = class_loader->GetClassTable(); - ObjPtr<mirror::Class> klass = class_table->Lookup(descriptor_, hash_); - // Add `klass` only if `class_loader` is its defining (not just initiating) class loader. - if (klass != nullptr && klass->GetClassLoader() == class_loader) { - result_->push_back(klass); - } - } - - private: - const char* const descriptor_; - const size_t hash_; - std::vector<ObjPtr<mirror::Class>>* const result_; -}; - -void ClassLinker::LookupClasses(const char* descriptor, - std::vector<ObjPtr<mirror::Class>>& result) { - result.clear(); - Thread* const self = Thread::Current(); - ReaderMutexLock mu(self, *Locks::classlinker_classes_lock_); - const size_t hash = ComputeModifiedUtf8Hash(descriptor); - ObjPtr<mirror::Class> klass = boot_class_table_->Lookup(descriptor, hash); - if (klass != nullptr) { - DCHECK(klass->GetClassLoader() == nullptr); - result.push_back(klass); - } - LookupClassesVisitor visitor(descriptor, hash, &result); - VisitClassLoaders(&visitor); -} - bool ClassLinker::AttemptSupertypeVerification(Thread* self, verifier::VerifierDeps* verifier_deps, Handle<mirror::Class> klass, diff --git a/runtime/class_linker.h b/runtime/class_linker.h index 505566f702..ebaf383809 100644 --- a/runtime/class_linker.h +++ b/runtime/class_linker.h @@ -247,11 +247,6 @@ class ClassLinker { REQUIRES(!Locks::classlinker_classes_lock_) REQUIRES_SHARED(Locks::mutator_lock_); - // Finds all the classes with the given descriptor, regardless of ClassLoader. - void LookupClasses(const char* descriptor, std::vector<ObjPtr<mirror::Class>>& classes) - REQUIRES(!Locks::classlinker_classes_lock_) - REQUIRES_SHARED(Locks::mutator_lock_); - ObjPtr<mirror::Class> LookupPrimitiveClass(char type) REQUIRES_SHARED(Locks::mutator_lock_); ObjPtr<mirror::Class> FindPrimitiveClass(char type) REQUIRES_SHARED(Locks::mutator_lock_); |