src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp
changeset 58686 0279391875bf
parent 58233 89033e6641ed
child 58929 03f182a0f62c
--- 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) {