Mercurial > hg > truffle
diff src/share/vm/memory/genMarkSweep.cpp @ 1000:a1423fe86a18
Merge
author | trims |
---|---|
date | Fri, 09 Oct 2009 15:18:52 -0700 |
parents | 89e0543e1737 54b3b351d6f9 |
children | 2a1472c30599 |
line wrap: on
line diff
--- a/src/share/vm/memory/genMarkSweep.cpp Fri Oct 02 11:26:25 2009 -0700 +++ b/src/share/vm/memory/genMarkSweep.cpp Fri Oct 09 15:18:52 2009 -0700 @@ -244,9 +244,12 @@ gch->gen_process_strong_roots(level, false, // Younger gens are not roots. + true, // activate StrongRootsScope true, // Collecting permanent generation. SharedHeap::SO_SystemClasses, - &follow_root_closure, &follow_root_closure); + &follow_root_closure, + true, // walk code active on stacks + &follow_root_closure); // Process reference objects found during marking { @@ -338,14 +341,19 @@ gch->gen_process_strong_roots(level, false, // Younger gens are not roots. + true, // activate StrongRootsScope true, // Collecting permanent generation. SharedHeap::SO_AllClasses, &adjust_root_pointer_closure, + false, // do not walk code &adjust_root_pointer_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_root_pointer_closure, + &adjust_code_pointer_closure, &adjust_pointer_closure); adjust_marks();