44 45 static bool _some_dictionary_needs_resizing; 46 bool _resizable; 47 bool _needs_resizing; 48 void check_if_needs_resize(); 49 50 ClassLoaderData* _loader_data; // backpointer to owning loader 51 ClassLoaderData* loader_data() const { return _loader_data; } 52 53 DictionaryEntry* get_entry(int index, unsigned int hash, Symbol* name); 54 55 public: 56 Dictionary(ClassLoaderData* loader_data, int table_size, bool resizable = false); 57 Dictionary(ClassLoaderData* loader_data, int table_size, HashtableBucket<mtClass>* t, int number_of_entries, bool resizable = false); 58 ~Dictionary(); 59 60 static bool does_any_dictionary_needs_resizing(); 61 bool resize_if_needed(); 62 63 void add_klass(unsigned int hash, Symbol* class_name, InstanceKlass* obj); 64 65 InstanceKlass* find_class(int index, unsigned int hash, Symbol* name); 66 67 void classes_do(void f(InstanceKlass*)); 68 void classes_do(void f(InstanceKlass*, TRAPS), TRAPS); 69 void all_entries_do(KlassClosure* closure); 70 void classes_do(MetaspaceClosure* it); 71 72 void clean_cached_protection_domains(); 73 74 // Protection domains 75 InstanceKlass* find(unsigned int hash, Symbol* name, Handle protection_domain); 76 bool is_valid_protection_domain(unsigned int hash, 77 Symbol* name, 78 Handle protection_domain); 79 void add_protection_domain(int index, unsigned int hash, 80 InstanceKlass* klass, 81 Handle protection_domain, TRAPS); 82 83 void print_on(outputStream* st) const; | 44 45 static bool _some_dictionary_needs_resizing; 46 bool _resizable; 47 bool _needs_resizing; 48 void check_if_needs_resize(); 49 50 ClassLoaderData* _loader_data; // backpointer to owning loader 51 ClassLoaderData* loader_data() const { return _loader_data; } 52 53 DictionaryEntry* get_entry(int index, unsigned int hash, Symbol* name); 54 55 public: 56 Dictionary(ClassLoaderData* loader_data, int table_size, bool resizable = false); 57 Dictionary(ClassLoaderData* loader_data, int table_size, HashtableBucket<mtClass>* t, int number_of_entries, bool resizable = false); 58 ~Dictionary(); 59 60 static bool does_any_dictionary_needs_resizing(); 61 bool resize_if_needed(); 62 63 void add_klass(unsigned int hash, Symbol* class_name, InstanceKlass* obj); 64 // replace the existing class with k, return old class. 65 InstanceKlass* replace_class(int index, unsigned hash, Symbol* class_name, InstanceKlass* k); 66 67 InstanceKlass* find_class(int index, unsigned int hash, Symbol* name); 68 69 void classes_do(void f(InstanceKlass*)); 70 void classes_do(void f(InstanceKlass*, TRAPS), TRAPS); 71 void all_entries_do(KlassClosure* closure); 72 void classes_do(MetaspaceClosure* it); 73 74 void clean_cached_protection_domains(); 75 76 // Protection domains 77 InstanceKlass* find(unsigned int hash, Symbol* name, Handle protection_domain); 78 bool is_valid_protection_domain(unsigned int hash, 79 Symbol* name, 80 Handle protection_domain); 81 void add_protection_domain(int index, unsigned int hash, 82 InstanceKlass* klass, 83 Handle protection_domain, TRAPS); 84 85 void print_on(outputStream* st) const; |