116 static void packages_unloading_do(void f(PackageEntry*));
117 static void loaded_classes_do(KlassClosure* klass_closure);
118 static void classes_unloading_do(void f(Klass* const));
119 static bool do_unloading(bool clean_previous_versions);
120
121 // dictionary do
122 // Iterate over all klasses in dictionary, but
123 // just the classes from defining class loaders.
124 static void dictionary_classes_do(void f(InstanceKlass*));
125 // Added for initialize_itable_for_klass to handle exceptions.
126 static void dictionary_classes_do(void f(InstanceKlass*, TRAPS), TRAPS);
127
128 // Iterate all classes and their class loaders, including initiating class loaders.
129 static void dictionary_all_entries_do(void f(InstanceKlass*, ClassLoaderData*));
130
131 // VM_CounterDecay iteration support
132 static InstanceKlass* try_get_next_class();
133
134 static void verify_dictionary();
135 static void print_dictionary(outputStream* st);
136 static void print_dictionary_statistics(outputStream* st);
137
138 // CMS support.
139 static void remember_new_clds(bool remember) { _saved_head = (remember ? _head : NULL); }
140 static GrowableArray<ClassLoaderData*>* new_clds();
141
142 static void set_should_purge(bool b) { _should_purge = b; }
143 static void purge_if_needed() {
144 // Only purge the CLDG for CMS if concurrent sweep is complete.
145 if (_should_purge) {
146 purge();
147 // reset for next time.
148 set_should_purge(false);
149 }
150 }
151
152 static int resize_if_needed();
153
154 static bool has_metaspace_oom() { return _metaspace_oom; }
155 static void set_metaspace_oom(bool value) { _metaspace_oom = value; }
156
|
116 static void packages_unloading_do(void f(PackageEntry*));
117 static void loaded_classes_do(KlassClosure* klass_closure);
118 static void classes_unloading_do(void f(Klass* const));
119 static bool do_unloading(bool clean_previous_versions);
120
121 // dictionary do
122 // Iterate over all klasses in dictionary, but
123 // just the classes from defining class loaders.
124 static void dictionary_classes_do(void f(InstanceKlass*));
125 // Added for initialize_itable_for_klass to handle exceptions.
126 static void dictionary_classes_do(void f(InstanceKlass*, TRAPS), TRAPS);
127
128 // Iterate all classes and their class loaders, including initiating class loaders.
129 static void dictionary_all_entries_do(void f(InstanceKlass*, ClassLoaderData*));
130
131 // VM_CounterDecay iteration support
132 static InstanceKlass* try_get_next_class();
133
134 static void verify_dictionary();
135 static void print_dictionary(outputStream* st);
136 static void print_table_statistics(outputStream* st);
137
138 // CMS support.
139 static void remember_new_clds(bool remember) { _saved_head = (remember ? _head : NULL); }
140 static GrowableArray<ClassLoaderData*>* new_clds();
141
142 static void set_should_purge(bool b) { _should_purge = b; }
143 static void purge_if_needed() {
144 // Only purge the CLDG for CMS if concurrent sweep is complete.
145 if (_should_purge) {
146 purge();
147 // reset for next time.
148 set_should_purge(false);
149 }
150 }
151
152 static int resize_if_needed();
153
154 static bool has_metaspace_oom() { return _metaspace_oom; }
155 static void set_metaspace_oom(bool value) { _metaspace_oom = value; }
156
|