diff -r 8624da129f0b -r 8b46c4d82093 src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp --- a/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp Mon Aug 31 05:27:29 2009 -0700 +++ b/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp Wed Sep 02 00:04:29 2009 -0700 @@ -901,7 +901,8 @@ static void marking_phase(ParCompactionManager* cm, bool maximum_heap_compaction); static void follow_stack(ParCompactionManager* cm); - static void follow_weak_klass_links(ParCompactionManager* cm); + static void follow_weak_klass_links(); + static void follow_mdo_weak_refs(); template static inline void adjust_pointer(T* p, bool is_root); static void adjust_root_pointer(oop* p) { adjust_pointer(p, true); } @@ -1221,6 +1222,9 @@ // Update subklass/sibling/implementor links at end of marking. static void revisit_weak_klass_link(ParCompactionManager* cm, Klass* k); + // Clear unmarked oops in MDOs at the end of marking. + static void revisit_mdo(ParCompactionManager* cm, DataLayout* p); + #ifndef PRODUCT // Debugging support. static const char* space_names[last_space_id];