77 inline void do_oop(narrowOop* p);
78 private:
79 template <class T>
80 inline void do_oop_work(T* p);
81 };
82
83 class ShenandoahEvacuateUpdateRootsClosure: public BasicOopIterateClosure {
84 private:
85 ShenandoahHeap* _heap;
86 Thread* _thread;
87 public:
88 inline ShenandoahEvacuateUpdateRootsClosure();
89 inline void do_oop(oop* p);
90 inline void do_oop(narrowOop* p);
91
92 private:
93 template <class T>
94 inline void do_oop_work(T* p);
95 };
96
97 class ShenandoahEvacUpdateOopStorageRootsClosure : public BasicOopIterateClosure {
98 private:
99 ShenandoahHeap* _heap;
100 Thread* _thread;
101 public:
102 inline ShenandoahEvacUpdateOopStorageRootsClosure();
103 inline void do_oop(oop* p);
104 inline void do_oop(narrowOop* p);
105 };
106
107 class ShenandoahCodeBlobAndDisarmClosure: public CodeBlobToOopClosure {
108 private:
109 BarrierSetNMethod* const _bs;
110
111 public:
112 inline ShenandoahCodeBlobAndDisarmClosure(OopClosure* cl);
113 inline void do_code_blob(CodeBlob* cb);
114 };
115
116 #ifdef ASSERT
117 class ShenandoahAssertNotForwardedClosure : public OopClosure {
118 private:
119 template <class T>
120 inline void do_oop_work(T* p);
121
122 public:
|
77 inline void do_oop(narrowOop* p);
78 private:
79 template <class T>
80 inline void do_oop_work(T* p);
81 };
82
83 class ShenandoahEvacuateUpdateRootsClosure: public BasicOopIterateClosure {
84 private:
85 ShenandoahHeap* _heap;
86 Thread* _thread;
87 public:
88 inline ShenandoahEvacuateUpdateRootsClosure();
89 inline void do_oop(oop* p);
90 inline void do_oop(narrowOop* p);
91
92 private:
93 template <class T>
94 inline void do_oop_work(T* p);
95 };
96
97 class ShenandoahEvacUpdateCleanupRootsClosure : public BasicOopIterateClosure {
98 private:
99 ShenandoahHeap* _heap;
100 Thread* _thread;
101 const ShenandoahMarkingContext* const _context;
102 public:
103 inline ShenandoahEvacUpdateCleanupRootsClosure();
104 inline void do_oop(oop* p);
105 inline void do_oop(narrowOop* p);
106 };
107
108 class ShenandoahCodeBlobAndDisarmClosure: public CodeBlobToOopClosure {
109 private:
110 BarrierSetNMethod* const _bs;
111
112 public:
113 inline ShenandoahCodeBlobAndDisarmClosure(OopClosure* cl);
114 inline void do_code_blob(CodeBlob* cb);
115 };
116
117 #ifdef ASSERT
118 class ShenandoahAssertNotForwardedClosure : public OopClosure {
119 private:
120 template <class T>
121 inline void do_oop_work(T* p);
122
123 public:
|