# HG changeset patch # User rkennke # Date 1553721903 -3600 # Node ID f855ec13aa2501ae184c8b3e0626a8cec9966116 # Parent 30067047ed88fecc2d81ad72847f0984dd447a99 8220664: Simplify ShenandoahUpdateHeapRefsClosure Reviewed-by: shade diff -r 30067047ed88 -r f855ec13aa25 src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp --- a/src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp Wed Apr 03 11:30:23 2019 -0400 +++ b/src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp Wed Mar 27 22:25:03 2019 +0100 @@ -184,24 +184,16 @@ virtual bool do_metadata() { return true; } }; -class ShenandoahUpdateHeapRefsSuperClosure : public BasicOopIterateClosure { +class ShenandoahUpdateHeapRefsClosure : public BasicOopIterateClosure { private: ShenandoahHeap* _heap; -public: - ShenandoahUpdateHeapRefsSuperClosure() : - _heap(ShenandoahHeap::heap()) {} template - void work(T *p); -}; - -class ShenandoahUpdateHeapRefsClosure : public ShenandoahUpdateHeapRefsSuperClosure { -private: - template - inline void do_oop_work(T* p) { work(p); } + void do_oop_work(T* p); public: - ShenandoahUpdateHeapRefsClosure() : ShenandoahUpdateHeapRefsSuperClosure() {} + ShenandoahUpdateHeapRefsClosure() : + _heap(ShenandoahHeap::heap()) {} virtual void do_oop(narrowOop* p) { do_oop_work(p); } virtual void do_oop(oop* p) { do_oop_work(p); } diff -r 30067047ed88 -r f855ec13aa25 src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp --- a/src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp Wed Apr 03 11:30:23 2019 -0400 +++ b/src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp Wed Mar 27 22:25:03 2019 +0100 @@ -34,7 +34,7 @@ } template -inline void ShenandoahUpdateHeapRefsSuperClosure::work(T* p) { +inline void ShenandoahUpdateHeapRefsClosure::do_oop_work(T* p) { _heap->maybe_update_with_forwarded(p); }