diff -r 4b13a908c2d0 -r 0279391875bf src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp Fri Oct 18 14:56:01 2019 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp Fri Oct 18 11:36:35 2019 -0400 @@ -189,6 +189,18 @@ _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) {