--- 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;