equal
deleted
inserted
replaced
31 |
31 |
32 // hook up weak ref data so it can be used during Mark-Sweep |
32 // hook up weak ref data so it can be used during Mark-Sweep |
33 assert(ref_processor() == NULL, "no stomping"); |
33 assert(ref_processor() == NULL, "no stomping"); |
34 assert(rp != NULL, "should be non-NULL"); |
34 assert(rp != NULL, "should be non-NULL"); |
35 _ref_processor = rp; |
35 _ref_processor = rp; |
36 rp->snap_policy(clear_all_softrefs); |
36 rp->setup_policy(clear_all_softrefs); |
37 |
37 |
38 TraceTime t1("Full GC", PrintGC && !PrintGCDetails, true, gclog_or_tty); |
38 TraceTime t1("Full GC", PrintGC && !PrintGCDetails, true, gclog_or_tty); |
39 |
39 |
40 // When collecting the permanent generation methodOops may be moving, |
40 // When collecting the permanent generation methodOops may be moving, |
41 // so we either have to flush all bcp data or convert it into bci. |
41 // so we either have to flush all bcp data or convert it into bci. |
244 SharedHeap::SO_SystemClasses, |
244 SharedHeap::SO_SystemClasses, |
245 &follow_root_closure, &follow_root_closure); |
245 &follow_root_closure, &follow_root_closure); |
246 |
246 |
247 // Process reference objects found during marking |
247 // Process reference objects found during marking |
248 { |
248 { |
249 ref_processor()->snap_policy(clear_all_softrefs); |
249 ref_processor()->setup_policy(clear_all_softrefs); |
250 ref_processor()->process_discovered_references( |
250 ref_processor()->process_discovered_references( |
251 &is_alive, &keep_alive, &follow_stack_closure, NULL); |
251 &is_alive, &keep_alive, &follow_stack_closure, NULL); |
252 } |
252 } |
253 |
253 |
254 // Follow system dictionary roots and unload classes |
254 // Follow system dictionary roots and unload classes |