# HG changeset patch # Parent 94a8fbf1b6a391a1d73cd7f0ed4d78882dc8fafa [backport] 8221278: Shenandoah should not enqueue string dedup candidates during root scan Reviewed-by: shade diff --git a/src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.cpp b/src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.cpp --- a/src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.cpp +++ b/src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.cpp @@ -46,7 +46,7 @@ #include "memory/resourceArea.hpp" #include "oops/oop.inline.hpp" -template +template class ShenandoahInitMarkRootsClosure : public OopClosure { private: ShenandoahObjToScanQueue* _queue; @@ -56,7 +56,7 @@ template inline void do_oop_nv(T* p) { - ShenandoahConcurrentMark::mark_through_ref(p, _heap, _queue, _mark_context, _dedup_queue); + ShenandoahConcurrentMark::mark_through_ref(p, _heap, _queue, _mark_context, _dedup_queue); } public: @@ -107,14 +107,8 @@ assert(queues->get_reserved() > worker_id, err_msg("Queue has not been reserved for worker id: %d", worker_id)); ShenandoahObjToScanQueue* q = queues->queue(worker_id); - if (ShenandoahStringDedup::is_enabled()) { - ShenandoahStrDedupQueue *dq = ShenandoahStringDedup::queue(worker_id); - ShenandoahInitMarkRootsClosure mark_cl(q, dq); - do_work(heap, &mark_cl, worker_id); - } else { - ShenandoahInitMarkRootsClosure mark_cl(q, NULL); - do_work(heap, &mark_cl, worker_id); - } + ShenandoahInitMarkRootsClosure mark_cl(q, NULL); + do_work(heap, &mark_cl, worker_id); } private: