equal
deleted
inserted
replaced
182 virtual void do_oop(narrowOop* p) { do_oop_work(p); } |
182 virtual void do_oop(narrowOop* p) { do_oop_work(p); } |
183 virtual void do_oop(oop* p) { do_oop_work(p); } |
183 virtual void do_oop(oop* p) { do_oop_work(p); } |
184 virtual bool do_metadata() { return true; } |
184 virtual bool do_metadata() { return true; } |
185 }; |
185 }; |
186 |
186 |
187 class ShenandoahUpdateHeapRefsSuperClosure : public BasicOopIterateClosure { |
187 class ShenandoahUpdateHeapRefsClosure : public BasicOopIterateClosure { |
188 private: |
188 private: |
189 ShenandoahHeap* _heap; |
189 ShenandoahHeap* _heap; |
190 public: |
190 |
191 ShenandoahUpdateHeapRefsSuperClosure() : |
191 template <class T> |
|
192 void do_oop_work(T* p); |
|
193 |
|
194 public: |
|
195 ShenandoahUpdateHeapRefsClosure() : |
192 _heap(ShenandoahHeap::heap()) {} |
196 _heap(ShenandoahHeap::heap()) {} |
193 |
|
194 template <class T> |
|
195 void work(T *p); |
|
196 }; |
|
197 |
|
198 class ShenandoahUpdateHeapRefsClosure : public ShenandoahUpdateHeapRefsSuperClosure { |
|
199 private: |
|
200 template <class T> |
|
201 inline void do_oop_work(T* p) { work<T>(p); } |
|
202 |
|
203 public: |
|
204 ShenandoahUpdateHeapRefsClosure() : ShenandoahUpdateHeapRefsSuperClosure() {} |
|
205 |
197 |
206 virtual void do_oop(narrowOop* p) { do_oop_work(p); } |
198 virtual void do_oop(narrowOop* p) { do_oop_work(p); } |
207 virtual void do_oop(oop* p) { do_oop_work(p); } |
199 virtual void do_oop(oop* p) { do_oop_work(p); } |
208 }; |
200 }; |
209 |
201 |