hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
changeset 25492 d27050bdfb04
parent 25491 70fb742e40aa
child 25905 04a3d83cc752
equal deleted inserted replaced
25491:70fb742e40aa 25492:d27050bdfb04
   612 
   612 
   613   par_scan_state.set_young_old_boundary(_young_old_boundary);
   613   par_scan_state.set_young_old_boundary(_young_old_boundary);
   614 
   614 
   615   KlassScanClosure klass_scan_closure(&par_scan_state.to_space_root_closure(),
   615   KlassScanClosure klass_scan_closure(&par_scan_state.to_space_root_closure(),
   616                                       gch->rem_set()->klass_rem_set());
   616                                       gch->rem_set()->klass_rem_set());
   617 
   617   CLDToKlassAndOopClosure cld_scan_closure(&klass_scan_closure,
   618   int so = SharedHeap::SO_AllClasses | SharedHeap::SO_Strings | SharedHeap::SO_ScavengeCodeCache;
   618                                            &par_scan_state.to_space_root_closure(),
       
   619                                            false);
   619 
   620 
   620   par_scan_state.start_strong_roots();
   621   par_scan_state.start_strong_roots();
   621   gch->gen_process_strong_roots(_gen->level(),
   622   gch->gen_process_roots(_gen->level(),
   622                                 true,  // Process younger gens, if any,
   623                          true,  // Process younger gens, if any,
   623                                        // as strong roots.
   624                                 // as strong roots.
   624                                 false, // no scope; this is parallel code
   625                          false, // no scope; this is parallel code
   625                                 SharedHeap::ScanningOption(so),
   626                          SharedHeap::SO_ScavengeCodeCache,
   626                                 &par_scan_state.to_space_root_closure(),
   627                          GenCollectedHeap::StrongAndWeakRoots,
   627                                 &par_scan_state.older_gen_closure(),
   628                          &par_scan_state.to_space_root_closure(),
   628                                 &klass_scan_closure);
   629                          &par_scan_state.older_gen_closure(),
       
   630                          &cld_scan_closure);
       
   631 
   629   par_scan_state.end_strong_roots();
   632   par_scan_state.end_strong_roots();
   630 
   633 
   631   // "evacuate followers".
   634   // "evacuate followers".
   632   par_scan_state.evacuate_followers_closure().do_void();
   635   par_scan_state.evacuate_followers_closure().do_void();
   633 }
   636 }