src/hotspot/share/gc/shenandoah/shenandoahClosures.hpp
changeset 58686 0279391875bf
parent 57533 a2912ba36422
child 59296 9186be5c78ba
--- 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 <class T>
+  inline void do_oop_work(T* p);
+};
+
 class ShenandoahEvacuateUpdateRootsClosure: public BasicOopIterateClosure {
 private:
   ShenandoahHeap* _heap;