192 virtual void do_oop( oop* p) { do_oop_work(p); }
193 virtual void do_oop(narrowOop* p) { do_oop_work(p); }
194 };
195
196 // Closure to scan the root regions during concurrent marking
197 class G1RootRegionScanClosure : public MetadataVisitingOopIterateClosure {
198 private:
199 G1CollectedHeap* _g1h;
200 G1ConcurrentMark* _cm;
201 uint _worker_id;
202 public:
203 G1RootRegionScanClosure(G1CollectedHeap* g1h, G1ConcurrentMark* cm, uint worker_id) :
204 _g1h(g1h), _cm(cm), _worker_id(worker_id) { }
205 template <class T> void do_oop_work(T* p);
206 virtual void do_oop( oop* p) { do_oop_work(p); }
207 virtual void do_oop(narrowOop* p) { do_oop_work(p); }
208 };
209
210 class G1ConcurrentRefineOopClosure: public BasicOopIterateClosure {
211 G1CollectedHeap* _g1h;
212 uint _worker_i;
213
214 public:
215 G1ConcurrentRefineOopClosure(G1CollectedHeap* g1h, uint worker_i) :
216 _g1h(g1h),
217 _worker_i(worker_i) {
218 }
219
220 virtual ReferenceIterationMode reference_iteration_mode() { return DO_FIELDS; }
221
222 template <class T> void do_oop_work(T* p);
223 virtual void do_oop(narrowOop* p) { do_oop_work(p); }
224 virtual void do_oop(oop* p) { do_oop_work(p); }
225 };
226
227 class G1RebuildRemSetClosure : public BasicOopIterateClosure {
228 G1CollectedHeap* _g1h;
229 uint _worker_id;
230 public:
231 G1RebuildRemSetClosure(G1CollectedHeap* g1h, uint worker_id) : _g1h(g1h), _worker_id(worker_id) {
232 }
233
234 template <class T> void do_oop_work(T* p);
235 virtual void do_oop(oop* p) { do_oop_work(p); }
236 virtual void do_oop(narrowOop* p) { do_oop_work(p); }
237
|
192 virtual void do_oop( oop* p) { do_oop_work(p); }
193 virtual void do_oop(narrowOop* p) { do_oop_work(p); }
194 };
195
196 // Closure to scan the root regions during concurrent marking
197 class G1RootRegionScanClosure : public MetadataVisitingOopIterateClosure {
198 private:
199 G1CollectedHeap* _g1h;
200 G1ConcurrentMark* _cm;
201 uint _worker_id;
202 public:
203 G1RootRegionScanClosure(G1CollectedHeap* g1h, G1ConcurrentMark* cm, uint worker_id) :
204 _g1h(g1h), _cm(cm), _worker_id(worker_id) { }
205 template <class T> void do_oop_work(T* p);
206 virtual void do_oop( oop* p) { do_oop_work(p); }
207 virtual void do_oop(narrowOop* p) { do_oop_work(p); }
208 };
209
210 class G1ConcurrentRefineOopClosure: public BasicOopIterateClosure {
211 G1CollectedHeap* _g1h;
212 uint _worker_id;
213
214 public:
215 G1ConcurrentRefineOopClosure(G1CollectedHeap* g1h, uint worker_id) :
216 _g1h(g1h),
217 _worker_id(worker_id) {
218 }
219
220 virtual ReferenceIterationMode reference_iteration_mode() { return DO_FIELDS; }
221
222 template <class T> void do_oop_work(T* p);
223 virtual void do_oop(narrowOop* p) { do_oop_work(p); }
224 virtual void do_oop(oop* p) { do_oop_work(p); }
225 };
226
227 class G1RebuildRemSetClosure : public BasicOopIterateClosure {
228 G1CollectedHeap* _g1h;
229 uint _worker_id;
230 public:
231 G1RebuildRemSetClosure(G1CollectedHeap* g1h, uint worker_id) : _g1h(g1h), _worker_id(worker_id) {
232 }
233
234 template <class T> void do_oop_work(T* p);
235 virtual void do_oop(oop* p) { do_oop_work(p); }
236 virtual void do_oop(narrowOop* p) { do_oop_work(p); }
237
|