hotspot/src/share/vm/gc/parallel/psMarkSweep.cpp
changeset 42650 1f304d0c888b
parent 38074 8475fdc6dcc3
child 46505 fd4bc78630b1
equal deleted inserted replaced
42649:28238583a459 42650:1f304d0c888b
    21  * questions.
    21  * questions.
    22  *
    22  *
    23  */
    23  */
    24 
    24 
    25 #include "precompiled.hpp"
    25 #include "precompiled.hpp"
       
    26 #include "aot/aotLoader.hpp"
    26 #include "classfile/stringTable.hpp"
    27 #include "classfile/stringTable.hpp"
    27 #include "classfile/symbolTable.hpp"
    28 #include "classfile/symbolTable.hpp"
    28 #include "classfile/systemDictionary.hpp"
    29 #include "classfile/systemDictionary.hpp"
    29 #include "code/codeCache.hpp"
    30 #include "code/codeCache.hpp"
    30 #include "gc/parallel/parallelScavengeHeap.hpp"
    31 #include "gc/parallel/parallelScavengeHeap.hpp"
   513     JvmtiExport::oops_do(mark_and_push_closure());
   514     JvmtiExport::oops_do(mark_and_push_closure());
   514     SystemDictionary::always_strong_oops_do(mark_and_push_closure());
   515     SystemDictionary::always_strong_oops_do(mark_and_push_closure());
   515     ClassLoaderDataGraph::always_strong_cld_do(follow_cld_closure());
   516     ClassLoaderDataGraph::always_strong_cld_do(follow_cld_closure());
   516     // Do not treat nmethods as strong roots for mark/sweep, since we can unload them.
   517     // Do not treat nmethods as strong roots for mark/sweep, since we can unload them.
   517     //CodeCache::scavenge_root_nmethods_do(CodeBlobToOopClosure(mark_and_push_closure()));
   518     //CodeCache::scavenge_root_nmethods_do(CodeBlobToOopClosure(mark_and_push_closure()));
       
   519     AOTLoader::oops_do(mark_and_push_closure());
   518   }
   520   }
   519 
   521 
   520   // Flush marking stack.
   522   // Flush marking stack.
   521   follow_stack();
   523   follow_stack();
   522 
   524 
   609   // Global (weak) JNI handles
   611   // Global (weak) JNI handles
   610   JNIHandles::weak_oops_do(adjust_pointer_closure());
   612   JNIHandles::weak_oops_do(adjust_pointer_closure());
   611 
   613 
   612   CodeBlobToOopClosure adjust_from_blobs(adjust_pointer_closure(), CodeBlobToOopClosure::FixRelocations);
   614   CodeBlobToOopClosure adjust_from_blobs(adjust_pointer_closure(), CodeBlobToOopClosure::FixRelocations);
   613   CodeCache::blobs_do(&adjust_from_blobs);
   615   CodeCache::blobs_do(&adjust_from_blobs);
       
   616   AOTLoader::oops_do(adjust_pointer_closure());
   614   StringTable::oops_do(adjust_pointer_closure());
   617   StringTable::oops_do(adjust_pointer_closure());
   615   ref_processor()->weak_oops_do(adjust_pointer_closure());
   618   ref_processor()->weak_oops_do(adjust_pointer_closure());
   616   PSScavenge::reference_processor()->weak_oops_do(adjust_pointer_closure());
   619   PSScavenge::reference_processor()->weak_oops_do(adjust_pointer_closure());
   617 
   620 
   618   adjust_marks();
   621   adjust_marks();