src/share/vm/gc_implementation/parNew/parNewGeneration.cpp

changeset 6992
2c6ef90f030a
parent 6971
7426d8d76305
child 7031
ee019285a52c
equal deleted inserted replaced
6991:882004b9e7e1 6992:2c6ef90f030a
611 611
612 par_scan_state.set_young_old_boundary(_young_old_boundary); 612 par_scan_state.set_young_old_boundary(_young_old_boundary);
613 613
614 KlassScanClosure klass_scan_closure(&par_scan_state.to_space_root_closure(), 614 KlassScanClosure klass_scan_closure(&par_scan_state.to_space_root_closure(),
615 gch->rem_set()->klass_rem_set()); 615 gch->rem_set()->klass_rem_set());
616 616 CLDToKlassAndOopClosure cld_scan_closure(&klass_scan_closure,
617 int so = SharedHeap::SO_AllClasses | SharedHeap::SO_Strings | SharedHeap::SO_ScavengeCodeCache; 617 &par_scan_state.to_space_root_closure(),
618 false);
618 619
619 par_scan_state.start_strong_roots(); 620 par_scan_state.start_strong_roots();
620 gch->gen_process_strong_roots(_gen->level(), 621 gch->gen_process_roots(_gen->level(),
621 true, // Process younger gens, if any, 622 true, // Process younger gens, if any,
622 // as strong roots. 623 // as strong roots.
623 false, // no scope; this is parallel code 624 false, // no scope; this is parallel code
624 SharedHeap::ScanningOption(so), 625 SharedHeap::SO_ScavengeCodeCache,
625 &par_scan_state.to_space_root_closure(), 626 GenCollectedHeap::StrongAndWeakRoots,
626 &par_scan_state.older_gen_closure(), 627 &par_scan_state.to_space_root_closure(),
627 &klass_scan_closure); 628 &par_scan_state.older_gen_closure(),
629 &cld_scan_closure);
630
628 par_scan_state.end_strong_roots(); 631 par_scan_state.end_strong_roots();
629 632
630 // "evacuate followers". 633 // "evacuate followers".
631 par_scan_state.evacuate_followers_closure().do_void(); 634 par_scan_state.evacuate_followers_closure().do_void();
632 } 635 }

mercurial