< prev index next >

src/share/vm/gc/serial/defNewGeneration.cpp

Print this page

        

*** 36,45 **** --- 36,46 ---- #include "gc/shared/genRemSet.hpp" #include "gc/shared/generationSpec.hpp" #include "gc/shared/referencePolicy.hpp" #include "gc/shared/space.inline.hpp" #include "gc/shared/spaceDecorator.hpp" + #include "gc/shared/strongRootsScope.hpp" #include "memory/iterator.hpp" #include "oops/instanceRefKlass.hpp" #include "oops/oop.inline.hpp" #include "runtime/atomic.inline.hpp" #include "runtime/java.hpp"
*** 452,462 **** gclog_or_tty->cr(); } } } ! void DefNewGeneration::younger_refs_iterate(OopsInGenClosure* cl) { assert(false, "NYI -- are you sure you want to call this?"); } size_t DefNewGeneration::capacity() const { --- 453,463 ---- gclog_or_tty->cr(); } } } ! void DefNewGeneration::younger_refs_iterate(OopsInGenClosure* cl, uint n_threads) { assert(false, "NYI -- are you sure you want to call this?"); } size_t DefNewGeneration::capacity() const {
*** 623,641 **** &fsc_with_gc_barrier); assert(gch->no_allocs_since_save_marks(0), "save marks have not been newly set."); ! gch->gen_process_roots(_level, true, // Process younger gens, if any, // as strong roots. - true, // activate StrongRootsScope GenCollectedHeap::SO_ScavengeCodeCache, GenCollectedHeap::StrongAndWeakRoots, &fsc_with_no_gc_barrier, &fsc_with_gc_barrier, &cld_scan_closure); // "evacuate followers". evacuate_followers.do_void(); FastKeepAliveClosure keep_alive(this, &scan_weak_ref); --- 624,649 ---- &fsc_with_gc_barrier); assert(gch->no_allocs_since_save_marks(0), "save marks have not been newly set."); ! { ! // DefNew needs to run with n_threads == 0, to make sure the serial ! // version of the card table scanning code is used. ! // See: CardTableModRefBS::non_clean_card_iterate_possibly_parallel. ! StrongRootsScope srs(0); ! ! gch->gen_process_roots(&srs, ! _level, true, // Process younger gens, if any, // as strong roots. GenCollectedHeap::SO_ScavengeCodeCache, GenCollectedHeap::StrongAndWeakRoots, &fsc_with_no_gc_barrier, &fsc_with_gc_barrier, &cld_scan_closure); + } // "evacuate followers". evacuate_followers.do_void(); FastKeepAliveClosure keep_alive(this, &scan_weak_ref);
< prev index next >