< 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 >