1.1 --- a/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp Mon Feb 06 12:18:24 2012 -0800 1.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp Fri Feb 10 17:40:20 2012 -0800 1.3 @@ -24,6 +24,7 @@ 1.4 1.5 #include "precompiled.hpp" 1.6 #include "classfile/symbolTable.hpp" 1.7 +#include "code/codeCache.hpp" 1.8 #include "gc_implementation/parallelScavenge/cardTableExtension.hpp" 1.9 #include "gc_implementation/parallelScavenge/gcTaskManager.hpp" 1.10 #include "gc_implementation/parallelScavenge/generationSizer.hpp" 1.11 @@ -100,7 +101,7 @@ 1.12 1.13 // Weak refs may be visited more than once. 1.14 if (PSScavenge::should_scavenge(p, _to_space)) { 1.15 - PSScavenge::copy_and_push_safe_barrier(_promotion_manager, p); 1.16 + PSScavenge::copy_and_push_safe_barrier<T, /*promote_immediately=*/false>(_promotion_manager, p); 1.17 } 1.18 } 1.19 virtual void do_oop(oop* p) { PSKeepAliveClosure::do_oop_work(p); } 1.20 @@ -602,6 +603,8 @@ 1.21 1.22 NOT_PRODUCT(reference_processor()->verify_no_references_recorded()); 1.23 1.24 + CodeCache::prune_scavenge_root_nmethods(); 1.25 + 1.26 // Re-verify object start arrays 1.27 if (VerifyObjectStartArray && 1.28 VerifyAfterGC) {