--- old/src/hotspot/share/classfile/classLoaderDataGraph.cpp 2018-11-15 17:16:14.151877182 -0500 +++ new/src/hotspot/share/classfile/classLoaderDataGraph.cpp 2018-11-15 17:16:13.859877192 -0500 @@ -242,7 +242,7 @@ // These are functions called by the GC, which require all of the CLDs, including the // unloading ones. -void ClassLoaderDataGraph::cld_oops_do(CLDClosure* cl) { +void ClassLoaderDataGraph::cld_do(CLDClosure* cl) { assert_locked_or_safepoint_weak(ClassLoaderDataGraph_lock); for (ClassLoaderData* cld = _head; cld != NULL; cld = cld->_next) { cl->do_cld(cld); @@ -259,12 +259,12 @@ } } -void ClassLoaderDataGraph::always_strong_cld_oops_do(CLDClosure* cl) { +void ClassLoaderDataGraph::always_strong_cld_do(CLDClosure* cl) { assert_locked_or_safepoint_weak(ClassLoaderDataGraph_lock); if (ClassUnloading) { roots_cld_do(cl, NULL); } else { - cld_oops_do(cl); + cld_do(cl); } } @@ -315,24 +315,13 @@ } }; -void ClassLoaderDataGraph::cld_do(CLDClosure* cl) { +void ClassLoaderDataGraph::loaded_cld_do(CLDClosure* cl) { ClassLoaderDataGraphIterator iter; while (ClassLoaderData* cld = iter.get_next()) { cl->do_cld(cld); } } -void ClassLoaderDataGraph::always_strong_cld_do(CLDClosure* cl) { - assert_locked_or_safepoint(ClassLoaderDataGraph_lock); - if (ClassUnloading) { - // The keep_alive bits are only so GC doesn't unload the classes prematurely, - // not for tools to find. - cl->do_cld(ClassLoaderData::the_null_class_loader_data()); - } else { - cld_do(cl); - } -} - // These functions assume that the caller has locked the ClassLoaderDataGraph_lock // if they are not calling the function from a safepoint. void ClassLoaderDataGraph::classes_do(KlassClosure* klass_closure) { --- old/src/hotspot/share/classfile/classLoaderDataGraph.hpp 2018-11-15 17:16:14.571877167 -0500 +++ new/src/hotspot/share/classfile/classLoaderDataGraph.hpp 2018-11-15 17:16:14.279877177 -0500 @@ -69,13 +69,12 @@ static void purge(); static void clear_claimed_marks(); // Iteration through CLDG inside a safepoint; GC support - static void cld_oops_do(CLDClosure* cl); + static void cld_do(CLDClosure* cl); static void cld_unloading_do(CLDClosure* cl); static void roots_cld_do(CLDClosure* strong, CLDClosure* weak); - static void always_strong_cld_oops_do(CLDClosure* cl); - // Iteration through CLDG not by GC. - static void cld_do(CLDClosure* cl); static void always_strong_cld_do(CLDClosure* cl); + // Iteration through CLDG not by GC. + static void loaded_cld_do(CLDClosure* cl); // klass do // Walking classes through the ClassLoaderDataGraph include array classes. It also includes // classes that are allocated but not loaded, classes that have errors, and scratch classes --- old/src/hotspot/share/classfile/classLoaderHierarchyDCmd.cpp 2018-11-15 17:16:14.943877154 -0500 +++ new/src/hotspot/share/classfile/classLoaderHierarchyDCmd.cpp 2018-11-15 17:16:14.671877163 -0500 @@ -515,7 +515,7 @@ assert(SafepointSynchronize::is_at_safepoint(), "must be a safepoint"); ResourceMark rm; LoaderInfoScanClosure cl (_show_classes, _verbose); - ClassLoaderDataGraph::cld_do(&cl); + ClassLoaderDataGraph::loaded_cld_do(&cl); // In non-verbose and non-show-classes mode, attempt to fold the tree. if (_fold) { if (!_verbose && !_show_classes) { --- old/src/hotspot/share/classfile/classLoaderStats.cpp 2018-11-15 17:16:15.331877140 -0500 +++ new/src/hotspot/share/classfile/classLoaderStats.cpp 2018-11-15 17:16:15.047877150 -0500 @@ -159,7 +159,7 @@ void ClassLoaderStatsVMOperation::doit() { ClassLoaderStatsClosure clsc (_out); - ClassLoaderDataGraph::cld_do(&clsc); + ClassLoaderDataGraph::loaded_cld_do(&clsc); clsc.print(); } --- old/src/hotspot/share/classfile/systemDictionary.cpp 2018-11-15 17:16:15.719877127 -0500 +++ new/src/hotspot/share/classfile/systemDictionary.cpp 2018-11-15 17:16:15.435877137 -0500 @@ -1934,7 +1934,7 @@ ClassLoaderData::the_null_class_loader_data()->dictionary()->remove_classes_in_error_state(); RemoveClassesClosure rcc; MutexLocker ml(ClassLoaderDataGraph_lock); - ClassLoaderDataGraph::cld_do(&rcc); + ClassLoaderDataGraph::loaded_cld_do(&rcc); } // ---------------------------------------------------------------------------- @@ -3076,7 +3076,7 @@ assert(DumpSharedSpaces, "dump time only"); Dictionary* master_dictionary = ClassLoaderData::the_null_class_loader_data()->dictionary(); CombineDictionariesClosure cdc(master_dictionary); - ClassLoaderDataGraph::cld_do(&cdc); + ClassLoaderDataGraph::loaded_cld_do(&cdc); // These tables are no longer valid or necessary. Keeping them around will // cause SystemDictionary::verify() to fail. Let's empty them. --- old/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp 2018-11-15 17:16:16.155877112 -0500 +++ new/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp 2018-11-15 17:16:15.871877122 -0500 @@ -2445,7 +2445,7 @@ verify_work_stacks_empty(); VerifyCLDOopsCLDClosure verify_cld_oops(verification_mark_bm()); - ClassLoaderDataGraph::cld_oops_do(&verify_cld_oops); + ClassLoaderDataGraph::cld_do(&verify_cld_oops); // Marking completed -- now verify that each bit marked in // verification_mark_bm() is also marked in markBitMap(); flag all @@ -4084,7 +4084,7 @@ // SSS: Add equivalent to ScanMarkedObjectsAgainCarefullyClosure::do_yield_check and should_abort_preclean? // SSS: We should probably check if precleaning should be aborted, at suitable intervals? PrecleanCLDClosure preclean_closure(cl); - ClassLoaderDataGraph::cld_oops_do(&preclean_closure); + ClassLoaderDataGraph::cld_do(&preclean_closure); verify_work_stacks_empty(); verify_overflow_empty(); @@ -4448,7 +4448,7 @@ // Scan all classes that was dirtied during the concurrent marking phase. RemarkCLDClosure remark_closure(&par_mrias_cl); - ClassLoaderDataGraph::cld_oops_do(&remark_closure); + ClassLoaderDataGraph::cld_do(&remark_closure); _timer.stop(); log_trace(gc, task)("Finished dirty CLD scanning work in %dth thread: %3.3f sec", worker_id, _timer.seconds()); @@ -4985,7 +4985,7 @@ verify_work_stacks_empty(); RemarkCLDClosure remark_closure(&mrias_cl); - ClassLoaderDataGraph::cld_oops_do(&remark_closure); + ClassLoaderDataGraph::cld_do(&remark_closure); verify_work_stacks_empty(); } --- old/src/hotspot/share/gc/parallel/pcTasks.cpp 2018-11-15 17:16:16.683877093 -0500 +++ new/src/hotspot/share/gc/parallel/pcTasks.cpp 2018-11-15 17:16:16.395877103 -0500 @@ -111,7 +111,7 @@ case class_loader_data: { CLDToOopClosure cld_closure(&mark_and_push_closure, ClassLoaderData::_claim_strong); - ClassLoaderDataGraph::always_strong_cld_oops_do(&cld_closure); + ClassLoaderDataGraph::always_strong_cld_do(&cld_closure); } break; --- old/src/hotspot/share/gc/parallel/psMarkSweep.cpp 2018-11-15 17:16:17.067877080 -0500 +++ new/src/hotspot/share/gc/parallel/psMarkSweep.cpp 2018-11-15 17:16:16.787877090 -0500 @@ -523,7 +523,7 @@ Management::oops_do(mark_and_push_closure()); JvmtiExport::oops_do(mark_and_push_closure()); SystemDictionary::oops_do(mark_and_push_closure()); - ClassLoaderDataGraph::always_strong_cld_oops_do(follow_cld_closure()); + ClassLoaderDataGraph::always_strong_cld_do(follow_cld_closure()); // Do not treat nmethods as strong roots for mark/sweep, since we can unload them. //CodeCache::scavenge_root_nmethods_do(CodeBlobToOopClosure(mark_and_push_closure())); AOTLoader::oops_do(mark_and_push_closure()); @@ -620,7 +620,7 @@ Management::oops_do(adjust_pointer_closure()); JvmtiExport::oops_do(adjust_pointer_closure()); SystemDictionary::oops_do(adjust_pointer_closure()); - ClassLoaderDataGraph::cld_oops_do(adjust_cld_closure()); + ClassLoaderDataGraph::cld_do(adjust_cld_closure()); // Now adjust pointers in remaining weak roots. (All of which should // have been cleared if they pointed to non-surviving objects.) --- old/src/hotspot/share/gc/parallel/psParallelCompact.cpp 2018-11-15 17:16:17.455877067 -0500 +++ new/src/hotspot/share/gc/parallel/psParallelCompact.cpp 2018-11-15 17:16:17.179877076 -0500 @@ -2214,7 +2214,7 @@ JvmtiExport::oops_do(&oop_closure); SystemDictionary::oops_do(&oop_closure); CLDToOopClosure cld_closure(&oop_closure, ClassLoaderData::_claim_strong); - ClassLoaderDataGraph::cld_oops_do(&cld_closure); + ClassLoaderDataGraph::cld_do(&cld_closure); // Now adjust pointers in remaining weak roots. (All of which should // have been cleared if they pointed to non-surviving objects.) --- old/src/hotspot/share/gc/parallel/psTasks.cpp 2018-11-15 17:16:17.847877053 -0500 +++ new/src/hotspot/share/gc/parallel/psTasks.cpp 2018-11-15 17:16:17.587877062 -0500 @@ -81,7 +81,7 @@ case class_loader_data: { PSScavengeCLDClosure cld_closure(pm); - ClassLoaderDataGraph::cld_oops_do(&cld_closure); + ClassLoaderDataGraph::cld_do(&cld_closure); } break; --- old/src/hotspot/share/gc/shared/cardTableRS.cpp 2018-11-15 17:16:18.239877039 -0500 +++ new/src/hotspot/share/gc/shared/cardTableRS.cpp 2018-11-15 17:16:17.951877049 -0500 @@ -58,7 +58,7 @@ bool CLDRemSet::mod_union_is_clear() { HasAccumulatedModifiedOopsClosure closure; - ClassLoaderDataGraph::cld_oops_do(&closure); + ClassLoaderDataGraph::cld_do(&closure); return !closure.found(); } @@ -75,7 +75,7 @@ void CLDRemSet::clear_mod_union() { ClearCLDModUnionClosure closure; - ClassLoaderDataGraph::cld_oops_do(&closure); + ClassLoaderDataGraph::cld_do(&closure); } --- old/src/hotspot/share/gc/z/zRootsIterator.cpp 2018-11-15 17:16:18.623877026 -0500 +++ new/src/hotspot/share/gc/z/zRootsIterator.cpp 2018-11-15 17:16:18.347877035 -0500 @@ -243,7 +243,7 @@ void ZConcurrentRootsIterator::do_class_loader_data_graph(ZRootsIteratorClosure* cl) { ZStatTimer timer(ZSubPhaseConcurrentRootsClassLoaderDataGraph); CLDToOopClosure cld_cl(cl, _marking ? ClassLoaderData::_claim_strong : ClassLoaderData::_claim_none); - ClassLoaderDataGraph::cld_oops_do(&cld_cl); + ClassLoaderDataGraph::cld_do(&cld_cl); } void ZConcurrentRootsIterator::oops_do(ZRootsIteratorClosure* cl) { --- old/src/hotspot/share/jfr/leakprofiler/utilities/saveRestore.cpp 2018-11-15 17:16:19.023877012 -0500 +++ new/src/hotspot/share/jfr/leakprofiler/utilities/saveRestore.cpp 2018-11-15 17:16:18.727877022 -0500 @@ -104,7 +104,7 @@ SaveRestoreCLDClaimBits::SaveRestoreCLDClaimBits() : _claim_state_closure() { // interferes with GC, so walk all oops that GC would. - ClassLoaderDataGraph::cld_oops_do(&_claim_state_closure); + ClassLoaderDataGraph::cld_do(&_claim_state_closure); } SaveRestoreCLDClaimBits::~SaveRestoreCLDClaimBits() { --- old/src/hotspot/share/jfr/periodic/jfrPeriodic.cpp 2018-11-15 17:16:19.415876998 -0500 +++ new/src/hotspot/share/jfr/periodic/jfrPeriodic.cpp 2018-11-15 17:16:19.127877008 -0500 @@ -495,7 +495,7 @@ void doit() { JfrClassLoaderStatsClosure clsc; - ClassLoaderDataGraph::cld_do(&clsc); + ClassLoaderDataGraph::loaded_cld_do(&clsc); clsc.createEvents(); } }; --- old/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp 2018-11-15 17:16:19.803876985 -0500 +++ new/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp 2018-11-15 17:16:19.523876994 -0500 @@ -939,7 +939,7 @@ ClassLoaderDataGraph::cld_unloading_do(&cld_cb); return; } - ClassLoaderDataGraph::cld_do(&cld_cb); + ClassLoaderDataGraph::loaded_cld_do(&cld_cb); } static void clear_artifacts(JfrArtifactSet* artifacts, --- old/src/hotspot/share/memory/metaspace.cpp 2018-11-15 17:16:20.191876971 -0500 +++ new/src/hotspot/share/memory/metaspace.cpp 2018-11-15 17:16:19.915876981 -0500 @@ -616,7 +616,7 @@ out->cr(); } - ClassLoaderDataGraph::cld_do(&cl); // collect data and optionally print + ClassLoaderDataGraph::loaded_cld_do(&cl); // collect data and optionally print // Print totals, broken up by space type. if (print_by_spacetype) {