equal
deleted
inserted
replaced
122 RawAccess<IS_NOT_NULL>::oop_store(p, new_obj); |
122 RawAccess<IS_NOT_NULL>::oop_store(p, new_obj); |
123 } |
123 } |
124 } |
124 } |
125 } |
125 } |
126 |
126 |
127 template <typename T> |
127 class PCAdjustPointerClosure: public BasicOopIterateClosure { |
128 void PSParallelCompact::AdjustPointerClosure::do_oop_work(T* p) { |
128 public: |
129 adjust_pointer(p, _cm); |
129 PCAdjustPointerClosure(ParCompactionManager* cm) { |
130 } |
130 assert(cm != NULL, "associate ParCompactionManage should not be NULL"); |
|
131 _cm = cm; |
|
132 } |
|
133 template <typename T> void do_oop_nv(T* p) { PSParallelCompact::adjust_pointer(p, _cm); } |
|
134 virtual void do_oop(oop* p) { do_oop_nv(p); } |
|
135 virtual void do_oop(narrowOop* p) { do_oop_nv(p); } |
131 |
136 |
132 inline void PSParallelCompact::AdjustPointerClosure::do_oop(oop* p) { do_oop_work(p); } |
137 // This closure provides its own oop verification code. |
133 inline void PSParallelCompact::AdjustPointerClosure::do_oop(narrowOop* p) { do_oop_work(p); } |
138 debug_only(virtual bool should_verify_oops() { return false; }) |
|
139 virtual ReferenceIterationMode reference_iteration_mode() { return DO_FIELDS; } |
|
140 private: |
|
141 ParCompactionManager* _cm; |
|
142 }; |
134 |
143 |
135 #endif // SHARE_VM_GC_PARALLEL_PSPARALLELCOMPACT_INLINE_HPP |
144 #endif // SHARE_VM_GC_PARALLEL_PSPARALLELCOMPACT_INLINE_HPP |