149 virtual void do_oop(oop* p) { do_oop_work(p); } |
149 virtual void do_oop(oop* p) { do_oop_work(p); } |
150 virtual void do_oop(narrowOop* p) { do_oop_work(p); } |
150 virtual void do_oop(narrowOop* p) { do_oop_work(p); } |
151 }; |
151 }; |
152 |
152 |
153 class G1CLDScanClosure : public CLDClosure { |
153 class G1CLDScanClosure : public CLDClosure { |
154 G1ParCopyHelper* _closure; |
154 G1ParCopyHelper* _closure; |
155 bool _process_only_dirty; |
155 bool _process_only_dirty; |
156 bool _must_claim; |
156 bool _must_claim; |
157 int _count; |
157 int _count; |
158 public: |
158 public: |
159 G1CLDScanClosure(G1ParCopyHelper* closure, |
159 G1CLDScanClosure(G1ParCopyHelper* closure, |
160 bool process_only_dirty, bool must_claim) |
160 bool process_only_dirty, bool must_claim) |
161 : _process_only_dirty(process_only_dirty), _must_claim(must_claim), _closure(closure), _count(0) {} |
161 : _process_only_dirty(process_only_dirty), _must_claim(must_claim), _closure(closure), _count(0) {} |
162 void do_cld(ClassLoaderData* cld); |
162 void do_cld(ClassLoaderData* cld); |
163 }; |
163 }; |
164 |
164 |
165 // Closure for iterating over object fields during concurrent marking |
165 // Closure for iterating over object fields during concurrent marking |
166 class G1CMOopClosure : public MetadataAwareOopClosure { |
166 class G1CMOopClosure : public MetadataAwareOopClosure { |
167 protected: |
|
168 G1ConcurrentMark* _cm; |
|
169 private: |
|
170 G1CollectedHeap* _g1h; |
167 G1CollectedHeap* _g1h; |
171 G1CMTask* _task; |
168 G1CMTask* _task; |
172 public: |
169 public: |
173 G1CMOopClosure(G1CollectedHeap* g1h, G1ConcurrentMark* cm, G1CMTask* task); |
170 G1CMOopClosure(G1CollectedHeap* g1h,G1CMTask* task); |
174 template <class T> void do_oop_nv(T* p); |
171 template <class T> void do_oop_nv(T* p); |
175 virtual void do_oop( oop* p) { do_oop_nv(p); } |
172 virtual void do_oop( oop* p) { do_oop_nv(p); } |
176 virtual void do_oop(narrowOop* p) { do_oop_nv(p); } |
173 virtual void do_oop(narrowOop* p) { do_oop_nv(p); } |
177 }; |
174 }; |
178 |
175 |