--- a/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp Tue Sep 15 11:09:34 2009 -0700
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp Tue Sep 15 21:53:47 2009 -0700
@@ -116,9 +116,11 @@
SharedHeap* sh = SharedHeap::heap();
- sh->process_strong_roots(true, // Collecting permanent generation.
+ sh->process_strong_roots(true, // activeate StrongRootsScope
+ true, // Collecting permanent generation.
SharedHeap::SO_SystemClasses,
&GenMarkSweep::follow_root_closure,
+ &GenMarkSweep::follow_code_root_closure,
&GenMarkSweep::follow_root_closure);
// Process reference objects found during marking
@@ -276,9 +278,11 @@
SharedHeap* sh = SharedHeap::heap();
- sh->process_strong_roots(true, // Collecting permanent generation.
+ sh->process_strong_roots(true, // activate StrongRootsScope
+ true, // Collecting permanent generation.
SharedHeap::SO_AllClasses,
&GenMarkSweep::adjust_root_pointer_closure,
+ NULL, // do not touch code cache here
&GenMarkSweep::adjust_pointer_closure);
g1h->ref_processor()->weak_oops_do(&GenMarkSweep::adjust_root_pointer_closure);