src/share/vm/memory/genMarkSweep.cpp
Print this page
rev 5891 : [mq]: hideDoCodeRoots
*** 210,220 ****
gch->gen_process_strong_roots(level,
false, // Younger gens are not roots.
true, // activate StrongRootsScope
SharedHeap::SO_SystemClasses,
&follow_root_closure,
- true, // walk code active on stacks
&follow_root_closure,
&follow_klass_closure);
// Process reference objects found during marking
{
--- 210,219 ----
*** 293,314 ****
adjust_pointer_closure.set_orig_generation(gch->get_gen(level));
gch->gen_process_strong_roots(level,
false, // Younger gens are not roots.
true, // activate StrongRootsScope
! SharedHeap::SO_AllClasses,
&adjust_pointer_closure,
- false, // do not walk code
&adjust_pointer_closure,
&adjust_klass_closure);
! // Now adjust pointers in remaining weak roots. (All of which should
! // have been cleared if they pointed to non-surviving objects.)
! CodeBlobToOopClosure adjust_code_pointer_closure(&adjust_pointer_closure,
! /*do_marking=*/ false);
! gch->gen_process_weak_roots(&adjust_pointer_closure,
! &adjust_code_pointer_closure);
adjust_marks();
GenAdjustPointersClosure blk;
gch->generation_iterate(&blk, true);
}
--- 292,307 ----
adjust_pointer_closure.set_orig_generation(gch->get_gen(level));
gch->gen_process_strong_roots(level,
false, // Younger gens are not roots.
true, // activate StrongRootsScope
! SharedHeap::SO_AllClasses | SharedHeap::SO_AllCodeCache,
&adjust_pointer_closure,
&adjust_pointer_closure,
&adjust_klass_closure);
! gch->gen_process_weak_roots(&adjust_pointer_closure);
adjust_marks();
GenAdjustPointersClosure blk;
gch->generation_iterate(&blk, true);
}