diff -r 23837d614c17 -r ba1eccda5450 src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Fri May 17 12:33:37 2019 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Fri May 17 09:52:35 2019 -0400 @@ -52,7 +52,7 @@ #include "gc/shenandoah/shenandoahMonitoringSupport.hpp" #include "gc/shenandoah/shenandoahOopClosures.inline.hpp" #include "gc/shenandoah/shenandoahPacer.inline.hpp" -#include "gc/shenandoah/shenandoahRootProcessor.hpp" +#include "gc/shenandoah/shenandoahRootProcessor.inline.hpp" #include "gc/shenandoah/shenandoahStringDedup.hpp" #include "gc/shenandoah/shenandoahTaskqueue.hpp" #include "gc/shenandoah/shenandoahUtils.hpp" @@ -1111,7 +1111,7 @@ ShenandoahEvacOOMScope oom_evac_scope; ShenandoahEvacuateUpdateRootsClosure cl; MarkingCodeBlobClosure blobsCl(&cl, CodeBlobToOopClosure::FixRelocations); - _rp->process_evacuate_roots(&cl, &blobsCl, worker_id); + _rp->roots_do(worker_id, &cl); } }; @@ -1122,7 +1122,7 @@ assert(ShenandoahSafepoint::is_at_shenandoah_safepoint(), "Only iterate roots while world is stopped"); { - ShenandoahRootEvacuator rp(this, workers()->active_workers(), ShenandoahPhaseTimings::init_evac); + ShenandoahRootEvacuator rp(workers()->active_workers(), ShenandoahPhaseTimings::init_evac); ShenandoahEvacuateUpdateRootsTask roots_task(&rp); workers()->run_task(&roots_task); } @@ -1326,11 +1326,9 @@ Stack oop_stack; // First, we process all GC roots. This populates the work stack with initial objects. - ShenandoahRootProcessor rp(this, 1, ShenandoahPhaseTimings::_num_phases); + ShenandoahRootScanner rp(1, ShenandoahPhaseTimings::_num_phases); ObjectIterateScanRootClosure oops(&_aux_bit_map, &oop_stack); - CLDToOopClosure clds(&oops, ClassLoaderData::_claim_none); - CodeBlobToOopClosure blobs(&oops, false); - rp.process_all_roots(&oops, &clds, &blobs, NULL, 0); + rp.roots_do(0, &oops); // Work through the oop stack to traverse heap. while (! oop_stack.is_empty()) {