57 protected:
58 static size_t entry_size();
59 public:
60 Dictionary(ClassLoaderData* loader_data, int table_size, bool resizable = false);
61 Dictionary(ClassLoaderData* loader_data, int table_size, HashtableBucket<mtClass>* t, int number_of_entries, bool resizable = false);
62 ~Dictionary();
63
64 static bool does_any_dictionary_needs_resizing();
65 bool resize_if_needed();
66
67 DictionaryEntry* new_entry(unsigned int hash, InstanceKlass* klass);
68
69 void add_klass(unsigned int hash, Symbol* class_name, InstanceKlass* obj);
70
71 InstanceKlass* find_class(int index, unsigned int hash, Symbol* name);
72
73 InstanceKlass* find_shared_class(int index, unsigned int hash, Symbol* name);
74
75 void classes_do(void f(InstanceKlass*));
76 void classes_do(void f(InstanceKlass*, TRAPS), TRAPS);
77 void all_entries_do(void f(InstanceKlass*, ClassLoaderData*));
78 void classes_do(MetaspaceClosure* it);
79
80 void unlink();
81 void remove_classes_in_error_state();
82
83 // Unload classes whose defining loaders are unloaded
84 void do_unloading();
85
86 // Protection domains
87 InstanceKlass* find(unsigned int hash, Symbol* name, Handle protection_domain);
88 bool is_valid_protection_domain(unsigned int hash,
89 Symbol* name,
90 Handle protection_domain);
91 void add_protection_domain(int index, unsigned int hash,
92 InstanceKlass* klass,
93 Handle protection_domain, TRAPS);
94
95 // Sharing support
96 void reorder_dictionary_for_sharing() NOT_CDS_RETURN;
97
|
57 protected:
58 static size_t entry_size();
59 public:
60 Dictionary(ClassLoaderData* loader_data, int table_size, bool resizable = false);
61 Dictionary(ClassLoaderData* loader_data, int table_size, HashtableBucket<mtClass>* t, int number_of_entries, bool resizable = false);
62 ~Dictionary();
63
64 static bool does_any_dictionary_needs_resizing();
65 bool resize_if_needed();
66
67 DictionaryEntry* new_entry(unsigned int hash, InstanceKlass* klass);
68
69 void add_klass(unsigned int hash, Symbol* class_name, InstanceKlass* obj);
70
71 InstanceKlass* find_class(int index, unsigned int hash, Symbol* name);
72
73 InstanceKlass* find_shared_class(int index, unsigned int hash, Symbol* name);
74
75 void classes_do(void f(InstanceKlass*));
76 void classes_do(void f(InstanceKlass*, TRAPS), TRAPS);
77 void all_entries_do(KlassClosure* closure);
78 void classes_do(MetaspaceClosure* it);
79
80 void unlink();
81 void remove_classes_in_error_state();
82
83 // Unload classes whose defining loaders are unloaded
84 void do_unloading();
85
86 // Protection domains
87 InstanceKlass* find(unsigned int hash, Symbol* name, Handle protection_domain);
88 bool is_valid_protection_domain(unsigned int hash,
89 Symbol* name,
90 Handle protection_domain);
91 void add_protection_domain(int index, unsigned int hash,
92 InstanceKlass* klass,
93 Handle protection_domain, TRAPS);
94
95 // Sharing support
96 void reorder_dictionary_for_sharing() NOT_CDS_RETURN;
97
|