1237 } 1238 1239 // Returns a MemRegion that corresponds to the space that has been 1240 // reserved for the heap 1241 MemRegion g1_reserved() const { 1242 return _hrm.reserved(); 1243 } 1244 1245 virtual bool is_in_closed_subset(const void* p) const; 1246 1247 G1SATBCardTableLoggingModRefBS* g1_barrier_set() { 1248 return barrier_set_cast<G1SATBCardTableLoggingModRefBS>(barrier_set()); 1249 } 1250 1251 // This resets the card table to all zeros. It is used after 1252 // a collection pause which used the card table to claim cards. 1253 void cleanUpCardTable(); 1254 1255 // Iteration functions. 1256 1257 // Iterate over all the ref-containing fields of all objects, calling 1258 // "cl.do_oop" on each. 1259 virtual void oop_iterate(ExtendedOopClosure* cl); 1260 1261 // Iterate over all objects, calling "cl.do_object" on each. 1262 virtual void object_iterate(ObjectClosure* cl); 1263 1264 virtual void safe_object_iterate(ObjectClosure* cl) { 1265 object_iterate(cl); 1266 } 1267 1268 // Iterate over heap regions, in address order, terminating the 1269 // iteration early if the "doHeapRegion" method returns "true". 1270 void heap_region_iterate(HeapRegionClosure* blk) const; 1271 1272 // Return the region with the given index. It assumes the index is valid. 1273 inline HeapRegion* region_at(uint index) const; 1274 1275 // Calculate the region index of the given address. Given address must be 1276 // within the heap. 1277 inline uint addr_to_region(HeapWord* addr) const; 1278 1279 inline HeapWord* bottom_addr_for_region(uint index) const; 1280 | 1237 } 1238 1239 // Returns a MemRegion that corresponds to the space that has been 1240 // reserved for the heap 1241 MemRegion g1_reserved() const { 1242 return _hrm.reserved(); 1243 } 1244 1245 virtual bool is_in_closed_subset(const void* p) const; 1246 1247 G1SATBCardTableLoggingModRefBS* g1_barrier_set() { 1248 return barrier_set_cast<G1SATBCardTableLoggingModRefBS>(barrier_set()); 1249 } 1250 1251 // This resets the card table to all zeros. It is used after 1252 // a collection pause which used the card table to claim cards. 1253 void cleanUpCardTable(); 1254 1255 // Iteration functions. 1256 1257 // Iterate over all objects, calling "cl.do_object" on each. 1258 virtual void object_iterate(ObjectClosure* cl); 1259 1260 virtual void safe_object_iterate(ObjectClosure* cl) { 1261 object_iterate(cl); 1262 } 1263 1264 // Iterate over heap regions, in address order, terminating the 1265 // iteration early if the "doHeapRegion" method returns "true". 1266 void heap_region_iterate(HeapRegionClosure* blk) const; 1267 1268 // Return the region with the given index. It assumes the index is valid. 1269 inline HeapRegion* region_at(uint index) const; 1270 1271 // Calculate the region index of the given address. Given address must be 1272 // within the heap. 1273 inline uint addr_to_region(HeapWord* addr) const; 1274 1275 inline HeapWord* bottom_addr_for_region(uint index) const; 1276 |