equal
deleted
inserted
replaced
33 |
33 |
34 // hook up weak ref data so it can be used during Mark-Sweep |
34 // hook up weak ref data so it can be used during Mark-Sweep |
35 assert(GenMarkSweep::ref_processor() == NULL, "no stomping"); |
35 assert(GenMarkSweep::ref_processor() == NULL, "no stomping"); |
36 assert(rp != NULL, "should be non-NULL"); |
36 assert(rp != NULL, "should be non-NULL"); |
37 GenMarkSweep::_ref_processor = rp; |
37 GenMarkSweep::_ref_processor = rp; |
38 rp->snap_policy(clear_all_softrefs); |
38 rp->setup_policy(clear_all_softrefs); |
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. |
42 CodeCache::gc_prologue(); |
42 CodeCache::gc_prologue(); |
43 Threads::gc_prologue(); |
43 Threads::gc_prologue(); |
121 &GenMarkSweep::follow_root_closure, |
121 &GenMarkSweep::follow_root_closure, |
122 &GenMarkSweep::follow_root_closure); |
122 &GenMarkSweep::follow_root_closure); |
123 |
123 |
124 // Process reference objects found during marking |
124 // Process reference objects found during marking |
125 ReferenceProcessor* rp = GenMarkSweep::ref_processor(); |
125 ReferenceProcessor* rp = GenMarkSweep::ref_processor(); |
126 rp->snap_policy(clear_all_softrefs); |
126 rp->setup_policy(clear_all_softrefs); |
127 rp->process_discovered_references(&GenMarkSweep::is_alive, |
127 rp->process_discovered_references(&GenMarkSweep::is_alive, |
128 &GenMarkSweep::keep_alive, |
128 &GenMarkSweep::keep_alive, |
129 &GenMarkSweep::follow_stack_closure, |
129 &GenMarkSweep::follow_stack_closure, |
130 NULL); |
130 NULL); |
131 |
131 |