159 G1CollectedHeap* _g1h;
160
161 G1ScanObjsDuringScanRSClosure* _scan_objs_on_card_cl;
162 CodeBlobClosure* _code_root_cl;
163
164 G1BlockOffsetTable* _bot;
165 G1SATBCardTableModRefBS *_ct_bs;
166
167 double _strong_code_root_scan_time_sec;
168 uint _worker_i;
169
170 void claim_card(size_t card_index, const uint region_idx_for_card);
171 void scan_card(MemRegion mr, uint region_idx_for_card);
172 void scan_strong_code_roots(HeapRegion* r);
173 public:
174 G1ScanRSForRegionClosure(G1RemSetScanState* scan_state,
175 G1ScanObjsDuringScanRSClosure* scan_obj_on_card,
176 CodeBlobClosure* code_root_cl,
177 uint worker_i);
178
179 bool doHeapRegion(HeapRegion* r);
180
181 double strong_code_root_scan_time_sec() {
182 return _strong_code_root_scan_time_sec;
183 }
184
185 size_t cards_scanned() const { return _cards_scanned; }
186 size_t cards_claimed() const { return _cards_claimed; }
187 size_t cards_skipped() const { return _cards_skipped; }
188 };
189
190 #endif // SHARE_VM_GC_G1_G1REMSET_HPP
|
159 G1CollectedHeap* _g1h;
160
161 G1ScanObjsDuringScanRSClosure* _scan_objs_on_card_cl;
162 CodeBlobClosure* _code_root_cl;
163
164 G1BlockOffsetTable* _bot;
165 G1SATBCardTableModRefBS *_ct_bs;
166
167 double _strong_code_root_scan_time_sec;
168 uint _worker_i;
169
170 void claim_card(size_t card_index, const uint region_idx_for_card);
171 void scan_card(MemRegion mr, uint region_idx_for_card);
172 void scan_strong_code_roots(HeapRegion* r);
173 public:
174 G1ScanRSForRegionClosure(G1RemSetScanState* scan_state,
175 G1ScanObjsDuringScanRSClosure* scan_obj_on_card,
176 CodeBlobClosure* code_root_cl,
177 uint worker_i);
178
179 bool do_heap_region(HeapRegion* r);
180
181 double strong_code_root_scan_time_sec() {
182 return _strong_code_root_scan_time_sec;
183 }
184
185 size_t cards_scanned() const { return _cards_scanned; }
186 size_t cards_claimed() const { return _cards_claimed; }
187 size_t cards_skipped() const { return _cards_skipped; }
188 };
189
190 #endif // SHARE_VM_GC_G1_G1REMSET_HPP
|