src/hotspot/share/gc/shenandoah/shenandoahClosures.hpp
changeset 58686 0279391875bf
parent 57533 a2912ba36422
child 59296 9186be5c78ba
equal deleted inserted replaced
58685:4b13a908c2d0 58686:0279391875bf
    25 
    25 
    26 #include "memory/iterator.hpp"
    26 #include "memory/iterator.hpp"
    27 
    27 
    28 class ShenandoahHeap;
    28 class ShenandoahHeap;
    29 class ShenandoahMarkingContext;
    29 class ShenandoahMarkingContext;
       
    30 class ShenandoahHeapRegionSet;
    30 class Thread;
    31 class Thread;
    31 
    32 
    32 class ShenandoahForwardedIsAliveClosure: public BoolObjectClosure {
    33 class ShenandoahForwardedIsAliveClosure: public BoolObjectClosure {
    33 private:
    34 private:
    34   ShenandoahMarkingContext* const _mark_context;
    35   ShenandoahMarkingContext* const _mark_context;
    56 class ShenandoahUpdateRefsClosure: public OopClosure {
    57 class ShenandoahUpdateRefsClosure: public OopClosure {
    57 private:
    58 private:
    58   ShenandoahHeap* _heap;
    59   ShenandoahHeap* _heap;
    59 public:
    60 public:
    60   inline ShenandoahUpdateRefsClosure();
    61   inline ShenandoahUpdateRefsClosure();
       
    62   inline void do_oop(oop* p);
       
    63   inline void do_oop(narrowOop* p);
       
    64 private:
       
    65   template <class T>
       
    66   inline void do_oop_work(T* p);
       
    67 };
       
    68 
       
    69 class ShenandoahTraversalUpdateRefsClosure: public OopClosure {
       
    70 private:
       
    71   ShenandoahHeap* const           _heap;
       
    72   ShenandoahHeapRegionSet* const  _traversal_set;
       
    73 
       
    74 public:
       
    75   inline ShenandoahTraversalUpdateRefsClosure();
    61   inline void do_oop(oop* p);
    76   inline void do_oop(oop* p);
    62   inline void do_oop(narrowOop* p);
    77   inline void do_oop(narrowOop* p);
    63 private:
    78 private:
    64   template <class T>
    79   template <class T>
    65   inline void do_oop_work(T* p);
    80   inline void do_oop_work(T* p);