diff options
Diffstat (limited to 'runtime/class_table.h')
-rw-r--r-- | runtime/class_table.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/runtime/class_table.h b/runtime/class_table.h index 911f3c22db..0b420352c3 100644 --- a/runtime/class_table.h +++ b/runtime/class_table.h @@ -84,9 +84,14 @@ class ClassTable { bool Visit(ClassVisitor* visitor) SHARED_REQUIRES(Locks::classlinker_classes_lock_, Locks::mutator_lock_); + // Return the first class that matches the descriptor. Returns null if there are none. mirror::Class* Lookup(const char* descriptor, size_t hash) SHARED_REQUIRES(Locks::classlinker_classes_lock_, Locks::mutator_lock_); + // Return the first class that matches the descriptor of klass. Returns null if there are none. + mirror::Class* LookupByDescriptor(mirror::Class* klass) + SHARED_REQUIRES(Locks::classlinker_classes_lock_, Locks::mutator_lock_); + void Insert(mirror::Class* klass) REQUIRES(Locks::classlinker_classes_lock_) SHARED_REQUIRES(Locks::mutator_lock_); @@ -107,10 +112,17 @@ class ClassTable { // Combines all of the tables into one class set. size_t WriteToMemory(uint8_t* ptr) const SHARED_REQUIRES(Locks::classlinker_classes_lock_, Locks::mutator_lock_); + + // Read a table from ptr and put it at the front of the class set. size_t ReadFromMemory(uint8_t* ptr) REQUIRES(Locks::classlinker_classes_lock_) SHARED_REQUIRES(Locks::mutator_lock_); + // Change the class loader of all the contained classes. + void SetClassLoader(mirror::ClassLoader* class_loader) + REQUIRES(Locks::classlinker_classes_lock_) + SHARED_REQUIRES(Locks::mutator_lock_); + private: class ClassDescriptorHashEquals { public: |