equal
deleted
inserted
replaced
91 |
91 |
92 mark_sweep_phase1(marked_for_unloading, clear_all_softrefs); |
92 mark_sweep_phase1(marked_for_unloading, clear_all_softrefs); |
93 |
93 |
94 mark_sweep_phase2(); |
94 mark_sweep_phase2(); |
95 |
95 |
|
96 #if defined(COMPILER2) || INCLUDE_JVMCI |
96 // Don't add any more derived pointers during phase3 |
97 // Don't add any more derived pointers during phase3 |
97 COMPILER2_PRESENT(DerivedPointerTable::set_active(false)); |
98 DerivedPointerTable::set_active(false); |
|
99 #endif |
98 |
100 |
99 mark_sweep_phase3(); |
101 mark_sweep_phase3(); |
100 |
102 |
101 mark_sweep_phase4(); |
103 mark_sweep_phase4(); |
102 |
104 |
165 // Delete entries for dead interned string and clean up unreferenced symbols in symbol table. |
167 // Delete entries for dead interned string and clean up unreferenced symbols in symbol table. |
166 g1h->unlink_string_and_symbol_table(&GenMarkSweep::is_alive); |
168 g1h->unlink_string_and_symbol_table(&GenMarkSweep::is_alive); |
167 |
169 |
168 if (VerifyDuringGC) { |
170 if (VerifyDuringGC) { |
169 HandleMark hm; // handle scope |
171 HandleMark hm; // handle scope |
170 COMPILER2_PRESENT(DerivedPointerTableDeactivate dpt_deact); |
172 #if defined(COMPILER2) || INCLUDE_JVMCI |
|
173 DerivedPointerTableDeactivate dpt_deact; |
|
174 #endif |
171 g1h->prepare_for_verify(); |
175 g1h->prepare_for_verify(); |
172 // Note: we can verify only the heap here. When an object is |
176 // Note: we can verify only the heap here. When an object is |
173 // marked, the previous value of the mark word (including |
177 // marked, the previous value of the mark word (including |
174 // identity hash values, ages, etc) is preserved, and the mark |
178 // identity hash values, ages, etc) is preserved, and the mark |
175 // word is set to markOop::marked_value - effectively removing |
179 // word is set to markOop::marked_value - effectively removing |