diff -r 4b13a908c2d0 -r 0279391875bf src/hotspot/share/gc/shenandoah/shenandoahClosures.hpp --- a/src/hotspot/share/gc/shenandoah/shenandoahClosures.hpp Fri Oct 18 14:56:01 2019 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahClosures.hpp Fri Oct 18 11:36:35 2019 -0400 @@ -27,6 +27,7 @@ class ShenandoahHeap; class ShenandoahMarkingContext; +class ShenandoahHeapRegionSet; class Thread; class ShenandoahForwardedIsAliveClosure: public BoolObjectClosure { @@ -65,6 +66,20 @@ inline void do_oop_work(T* p); }; +class ShenandoahTraversalUpdateRefsClosure: public OopClosure { +private: + ShenandoahHeap* const _heap; + ShenandoahHeapRegionSet* const _traversal_set; + +public: + inline ShenandoahTraversalUpdateRefsClosure(); + inline void do_oop(oop* p); + inline void do_oop(narrowOop* p); +private: + template + inline void do_oop_work(T* p); +}; + class ShenandoahEvacuateUpdateRootsClosure: public BasicOopIterateClosure { private: ShenandoahHeap* _heap;