src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp

changeset 6992
2c6ef90f030a
parent 6904
0982ec23da03
child 7535
7ae4e26cb1e0
child 7612
f74dbdd45754
     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());

mercurial