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); }