< prev index next >
src/share/vm/gc/serial/genMarkSweep.cpp
Print this page
rev 11983 : 8166276: Refactor gen_process_roots to allow simpler fix for 8165949
Reviewed-by:
Contributed-by: jesper.wilhelmsson@oracle.com
rev 11985 : 8165949: Serial and ConcMarkSweep do not unload strings when class unloading is disabled
Reviewed-by:
*** 194,207 ****
ClassLoaderDataGraph::clear_claimed_marks();
{
StrongRootsScope srs(1);
! gch->old_process_roots(&srs,
! false, // Younger gens are not roots.
GenCollectedHeap::SO_None,
! ClassUnloading,
&follow_root_closure,
&follow_cld_closure);
}
// Process reference objects found during marking
--- 194,208 ----
ClassLoaderDataGraph::clear_claimed_marks();
{
StrongRootsScope srs(1);
! gch->full_process_roots(&srs,
! ClassUnloading, // only strong roots if ClassUnloading
! // is enabled
GenCollectedHeap::SO_None,
! false, // not the adjust phase
&follow_root_closure,
&follow_cld_closure);
}
// Process reference objects found during marking
*** 291,304 ****
adjust_pointer_closure.set_orig_generation(gch->old_gen());
{
StrongRootsScope srs(1);
! gch->old_process_roots(&srs,
! false, // Younger gens are not roots.
GenCollectedHeap::SO_AllCodeCache,
! false,
&adjust_pointer_closure,
&adjust_cld_closure);
}
gch->gen_process_weak_roots(&adjust_pointer_closure);
--- 292,305 ----
adjust_pointer_closure.set_orig_generation(gch->old_gen());
{
StrongRootsScope srs(1);
! gch->full_process_roots(&srs,
! false, // all roots
GenCollectedHeap::SO_AllCodeCache,
! true, // this is the adjust phase
&adjust_pointer_closure,
&adjust_cld_closure);
}
gch->gen_process_weak_roots(&adjust_pointer_closure);
< prev index next >