< prev index next >
src/share/vm/gc/g1/heapRegionManager.inline.hpp
Print this page
@@ -37,18 +37,30 @@
HeapRegion* hr = _regions.get_by_address(addr);
return hr;
}
+inline uint HeapRegionManager::addr_to_index(HeapWord* addr) const {
+ // Called routine will assert that index is in bounds (and thus address is within
+ // the maximum heap (which might be outside the current heap)).
+ return _regions.get_index_by_address(addr);
+}
+
inline HeapRegion* HeapRegionManager::at(uint index) const {
assert(is_available(index), "pre-condition");
HeapRegion* hr = _regions.get_by_index(index);
assert(hr != NULL, "sanity");
assert(hr->hrm_index() == index, "sanity");
return hr;
}
+inline HeapRegion* HeapRegionManager::at_or_null(uint index) const {
+ assert(index <= max_length(), "index out of range");
+ HeapRegion* hr = _regions.get_by_index(index);
+ return hr;
+}
+
inline void HeapRegionManager::insert_into_free_list(HeapRegion* hr) {
_free_list.add_ordered(hr);
}
inline void HeapRegionManager::allocate_free_regions_starting_at(uint first, uint num_regions) {
< prev index next >