src/share/vm/memory/defNewGeneration.cpp

changeset 6992
2c6ef90f030a
parent 6971
7426d8d76305
child 7031
ee019285a52c
equal deleted inserted replaced
6991:882004b9e7e1 6992:2c6ef90f030a
611 FastScanClosure fsc_with_no_gc_barrier(this, false); 611 FastScanClosure fsc_with_no_gc_barrier(this, false);
612 FastScanClosure fsc_with_gc_barrier(this, true); 612 FastScanClosure fsc_with_gc_barrier(this, true);
613 613
614 KlassScanClosure klass_scan_closure(&fsc_with_no_gc_barrier, 614 KlassScanClosure klass_scan_closure(&fsc_with_no_gc_barrier,
615 gch->rem_set()->klass_rem_set()); 615 gch->rem_set()->klass_rem_set());
616 CLDToKlassAndOopClosure cld_scan_closure(&klass_scan_closure,
617 &fsc_with_no_gc_barrier,
618 false);
616 619
617 set_promo_failure_scan_stack_closure(&fsc_with_no_gc_barrier); 620 set_promo_failure_scan_stack_closure(&fsc_with_no_gc_barrier);
618 FastEvacuateFollowersClosure evacuate_followers(gch, _level, this, 621 FastEvacuateFollowersClosure evacuate_followers(gch, _level, this,
619 &fsc_with_no_gc_barrier, 622 &fsc_with_no_gc_barrier,
620 &fsc_with_gc_barrier); 623 &fsc_with_gc_barrier);
621 624
622 assert(gch->no_allocs_since_save_marks(0), 625 assert(gch->no_allocs_since_save_marks(0),
623 "save marks have not been newly set."); 626 "save marks have not been newly set.");
624 627
625 int so = SharedHeap::SO_AllClasses | SharedHeap::SO_Strings | SharedHeap::SO_ScavengeCodeCache; 628 gch->gen_process_roots(_level,
626 629 true, // Process younger gens, if any,
627 gch->gen_process_strong_roots(_level, 630 // as strong roots.
628 true, // Process younger gens, if any, 631 true, // activate StrongRootsScope
629 // as strong roots. 632 SharedHeap::SO_ScavengeCodeCache,
630 true, // activate StrongRootsScope 633 GenCollectedHeap::StrongAndWeakRoots,
631 SharedHeap::ScanningOption(so), 634 &fsc_with_no_gc_barrier,
632 &fsc_with_no_gc_barrier, 635 &fsc_with_gc_barrier,
633 &fsc_with_gc_barrier, 636 &cld_scan_closure);
634 &klass_scan_closure);
635 637
636 // "evacuate followers". 638 // "evacuate followers".
637 evacuate_followers.do_void(); 639 evacuate_followers.do_void();
638 640
639 FastKeepAliveClosure keep_alive(this, &scan_weak_ref); 641 FastKeepAliveClosure keep_alive(this, &scan_weak_ref);

mercurial