8342079: Shenandoah: Remove extra ShenandoahInitMarkRootsClosure

Reviewed-by: wkemper, rkennke
This commit is contained in:
Aleksey Shipilev 2024-10-17 15:03:37 +00:00
parent 9a94884e42
commit 979895d175

@ -37,33 +37,6 @@
#include "gc/shenandoah/shenandoahSTWMark.hpp"
#include "gc/shenandoah/shenandoahVerifier.hpp"
template<ShenandoahGenerationType GENERATION>
class ShenandoahInitMarkRootsClosure : public OopClosure {
private:
ShenandoahObjToScanQueue* const _queue;
ShenandoahMarkingContext* const _mark_context;
template <class T>
inline void do_oop_work(T* p);
public:
ShenandoahInitMarkRootsClosure(ShenandoahObjToScanQueue* q);
void do_oop(narrowOop* p) { do_oop_work(p); }
void do_oop(oop* p) { do_oop_work(p); }
};
template <ShenandoahGenerationType GENERATION>
ShenandoahInitMarkRootsClosure<GENERATION>::ShenandoahInitMarkRootsClosure(ShenandoahObjToScanQueue* q) :
_queue(q),
_mark_context(ShenandoahHeap::heap()->marking_context()) {
}
template <ShenandoahGenerationType GENERATION>
template <class T>
void ShenandoahInitMarkRootsClosure<GENERATION>::do_oop_work(T* p) {
ShenandoahMark::mark_through_ref<T, GENERATION>(p, _queue, _mark_context, false);
}
class ShenandoahSTWMarkTask : public WorkerTask {
private:
ShenandoahSTWMark* const _mark;
@ -137,8 +110,9 @@ void ShenandoahSTWMark::mark() {
}
void ShenandoahSTWMark::mark_roots(uint worker_id) {
ShenandoahInitMarkRootsClosure<NON_GEN> init_mark(task_queues()->queue(worker_id));
_root_scanner.roots_do(&init_mark, worker_id);
ShenandoahReferenceProcessor* rp = ShenandoahHeap::heap()->ref_processor();
ShenandoahMarkRefsClosure<NON_GEN> cl(task_queues()->queue(worker_id), rp);
_root_scanner.roots_do(&cl, worker_id);
}
void ShenandoahSTWMark::finish_mark(uint worker_id) {