114 TraceTime tm("phase 1", PrintGC && Verbose, true, gclog_or_tty); |
114 TraceTime tm("phase 1", PrintGC && Verbose, true, gclog_or_tty); |
115 GenMarkSweep::trace(" 1"); |
115 GenMarkSweep::trace(" 1"); |
116 |
116 |
117 SharedHeap* sh = SharedHeap::heap(); |
117 SharedHeap* sh = SharedHeap::heap(); |
118 |
118 |
119 sh->process_strong_roots(true, // Collecting permanent generation. |
119 sh->process_strong_roots(true, // activeate StrongRootsScope |
|
120 true, // Collecting permanent generation. |
120 SharedHeap::SO_SystemClasses, |
121 SharedHeap::SO_SystemClasses, |
121 &GenMarkSweep::follow_root_closure, |
122 &GenMarkSweep::follow_root_closure, |
|
123 &GenMarkSweep::follow_code_root_closure, |
122 &GenMarkSweep::follow_root_closure); |
124 &GenMarkSweep::follow_root_closure); |
123 |
125 |
124 // Process reference objects found during marking |
126 // Process reference objects found during marking |
125 ReferenceProcessor* rp = GenMarkSweep::ref_processor(); |
127 ReferenceProcessor* rp = GenMarkSweep::ref_processor(); |
126 rp->setup_policy(clear_all_softrefs); |
128 rp->setup_policy(clear_all_softrefs); |
274 TraceTime tm("phase 3", PrintGC && Verbose, true, gclog_or_tty); |
276 TraceTime tm("phase 3", PrintGC && Verbose, true, gclog_or_tty); |
275 GenMarkSweep::trace("3"); |
277 GenMarkSweep::trace("3"); |
276 |
278 |
277 SharedHeap* sh = SharedHeap::heap(); |
279 SharedHeap* sh = SharedHeap::heap(); |
278 |
280 |
279 sh->process_strong_roots(true, // Collecting permanent generation. |
281 sh->process_strong_roots(true, // activate StrongRootsScope |
|
282 true, // Collecting permanent generation. |
280 SharedHeap::SO_AllClasses, |
283 SharedHeap::SO_AllClasses, |
281 &GenMarkSweep::adjust_root_pointer_closure, |
284 &GenMarkSweep::adjust_root_pointer_closure, |
|
285 NULL, // do not touch code cache here |
282 &GenMarkSweep::adjust_pointer_closure); |
286 &GenMarkSweep::adjust_pointer_closure); |
283 |
287 |
284 g1h->ref_processor()->weak_oops_do(&GenMarkSweep::adjust_root_pointer_closure); |
288 g1h->ref_processor()->weak_oops_do(&GenMarkSweep::adjust_root_pointer_closure); |
285 |
289 |
286 // Now adjust pointers in remaining weak roots. (All of which should |
290 // Now adjust pointers in remaining weak roots. (All of which should |