diff -r 3636afd5ec1a -r e0a77b91da68 src/share/vm/code/nmethod.cpp --- a/src/share/vm/code/nmethod.cpp Fri May 02 16:44:54 2014 -0700 +++ b/src/share/vm/code/nmethod.cpp Mon Apr 28 12:39:12 2014 +0200 @@ -771,7 +771,11 @@ _hotness_counter = NMethodSweeper::hotness_counter_reset_val(); code_buffer->copy_values_to(this); - debug_only(verify_scavenge_root_oops()); + if (ScavengeRootsInCode && detect_scavenge_root_oops()) { + CodeCache::add_scavenge_root_nmethod(this); + Universe::heap()->register_nmethod(this); + } + DEBUG_ONLY(verify_scavenge_root_oops();) CodeCache::commit(this); }