diff --git a/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp b/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp index 67b0f51b09..6ac21c2091 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp @@ -203,18 +203,6 @@ ShenandoahRootUpdater::ShenandoahRootUpdater(uint n_workers, ShenandoahPhaseTimi _thread_roots(n_workers > 1) { } -void ShenandoahRootUpdater::strong_roots_do(uint worker_id, OopClosure* oops_cl) { - CodeBlobToOopClosure update_blobs(oops_cl, CodeBlobToOopClosure::FixRelocations); - CLDToOopClosure clds(oops_cl, ClassLoaderData::_claim_strong); - - _serial_roots.oops_do(oops_cl, worker_id); - _vm_roots.oops_do(oops_cl, worker_id); - - _thread_roots.oops_do(oops_cl, NULL, worker_id); - _cld_roots.cld_do(&clds, worker_id); - _code_roots.code_blobs_do(&update_blobs, worker_id); -} - ShenandoahRootAdjuster::ShenandoahRootAdjuster(uint n_workers, ShenandoahPhaseTimings::Phase phase) : ShenandoahRootProcessor(phase), _thread_roots(n_workers > 1) { diff --git a/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp b/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp index a56d1230d1..98abe87d84 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp @@ -306,8 +306,6 @@ public: template void roots_do(uint worker_id, IsAlive* is_alive, KeepAlive* keep_alive); - - void strong_roots_do(uint worker_id, OopClosure* oops_cl); }; // Adjuster all roots at a safepoint during full gc diff --git a/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp b/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp index 9ebe130e23..8dad30cb56 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp @@ -605,8 +605,8 @@ void ShenandoahTraversalGC::final_traversal_collection() { _heap->set_concurrent_traversal_in_progress(false); _heap->mark_complete_marking_context(); - fixup_roots(); _heap->parallel_cleaning(false); + fixup_roots(); _heap->set_has_forwarded_objects(false); @@ -707,7 +707,8 @@ public: void work(uint worker_id) { ShenandoahParallelWorkerSession worker_session(worker_id); ShenandoahTraversalFixRootsClosure cl; - _rp->strong_roots_do(worker_id, &cl); + ShenandoahForwardedIsAliveClosure is_alive; + _rp->roots_do(worker_id, &is_alive, &cl); } };