1.1 --- a/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp Tue Jul 01 09:03:55 2014 +0200 1.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp Mon Jul 07 10:12:40 2014 +0200 1.3 @@ -528,14 +528,14 @@ 1.4 Universe::oops_do(mark_and_push_closure()); 1.5 JNIHandles::oops_do(mark_and_push_closure()); // Global (strong) JNI handles 1.6 CLDToOopClosure mark_and_push_from_cld(mark_and_push_closure()); 1.7 - CodeBlobToOopClosure each_active_code_blob(mark_and_push_closure(), /*do_marking=*/ true); 1.8 + MarkingCodeBlobClosure each_active_code_blob(mark_and_push_closure(), !CodeBlobToOopClosure::FixRelocations); 1.9 Threads::oops_do(mark_and_push_closure(), &mark_and_push_from_cld, &each_active_code_blob); 1.10 ObjectSynchronizer::oops_do(mark_and_push_closure()); 1.11 FlatProfiler::oops_do(mark_and_push_closure()); 1.12 Management::oops_do(mark_and_push_closure()); 1.13 JvmtiExport::oops_do(mark_and_push_closure()); 1.14 SystemDictionary::always_strong_oops_do(mark_and_push_closure()); 1.15 - ClassLoaderDataGraph::always_strong_oops_do(mark_and_push_closure(), follow_klass_closure(), true); 1.16 + ClassLoaderDataGraph::always_strong_cld_do(follow_cld_closure()); 1.17 // Do not treat nmethods as strong roots for mark/sweep, since we can unload them. 1.18 //CodeCache::scavenge_root_nmethods_do(CodeBlobToOopClosure(mark_and_push_closure())); 1.19 } 1.20 @@ -625,16 +625,16 @@ 1.21 FlatProfiler::oops_do(adjust_pointer_closure()); 1.22 Management::oops_do(adjust_pointer_closure()); 1.23 JvmtiExport::oops_do(adjust_pointer_closure()); 1.24 - // SO_AllClasses 1.25 SystemDictionary::oops_do(adjust_pointer_closure()); 1.26 - ClassLoaderDataGraph::oops_do(adjust_pointer_closure(), adjust_klass_closure(), true); 1.27 + ClassLoaderDataGraph::cld_do(adjust_cld_closure()); 1.28 1.29 // Now adjust pointers in remaining weak roots. (All of which should 1.30 // have been cleared if they pointed to non-surviving objects.) 1.31 // Global (weak) JNI handles 1.32 JNIHandles::weak_oops_do(&always_true, adjust_pointer_closure()); 1.33 1.34 - CodeCache::oops_do(adjust_pointer_closure()); 1.35 + CodeBlobToOopClosure adjust_from_blobs(adjust_pointer_closure(), CodeBlobToOopClosure::FixRelocations); 1.36 + CodeCache::blobs_do(&adjust_from_blobs); 1.37 StringTable::oops_do(adjust_pointer_closure()); 1.38 ref_processor()->weak_oops_do(adjust_pointer_closure()); 1.39 PSScavenge::reference_processor()->weak_oops_do(adjust_pointer_closure());