161 CodeCache::do_unloading(&GenMarkSweep::is_alive, purged_class); |
161 CodeCache::do_unloading(&GenMarkSweep::is_alive, purged_class); |
162 |
162 |
163 // Prune dead klasses from subklass/sibling/implementor lists. |
163 // Prune dead klasses from subklass/sibling/implementor lists. |
164 Klass::clean_weak_klass_links(&GenMarkSweep::is_alive); |
164 Klass::clean_weak_klass_links(&GenMarkSweep::is_alive); |
165 |
165 |
166 // Delete entries for dead interned strings. |
166 // Delete entries for dead interned string and clean up unreferenced symbols in symbol table. |
167 StringTable::unlink(&GenMarkSweep::is_alive); |
167 G1CollectedHeap::heap()->unlink_string_and_symbol_table(&GenMarkSweep::is_alive); |
168 |
|
169 // Clean up unreferenced symbols in symbol table. |
|
170 SymbolTable::unlink(); |
|
171 |
168 |
172 if (VerifyDuringGC) { |
169 if (VerifyDuringGC) { |
173 HandleMark hm; // handle scope |
170 HandleMark hm; // handle scope |
174 COMPILER2_PRESENT(DerivedPointerTableDeactivate dpt_deact); |
171 COMPILER2_PRESENT(DerivedPointerTableDeactivate dpt_deact); |
175 Universe::heap()->prepare_for_verify(); |
172 Universe::heap()->prepare_for_verify(); |