--- old/src/share/vm/gc/g1/heapRegionManager.hpp 2015-05-27 14:31:01.888282384 -0400 +++ new/src/share/vm/gc/g1/heapRegionManager.hpp 2015-05-27 14:31:01.284247967 -0400 @@ -150,10 +150,17 @@ // is valid. inline HeapRegion* at(uint index) const; + // Return the HeapRegion at the given index, or NULL. + inline HeapRegion* at_or_null(uint index) const; + // If addr is within the committed space return its corresponding // HeapRegion, otherwise return NULL. inline HeapRegion* addr_to_region(HeapWord* addr) const; + // If addr is within the maximum heap space, return its corresponding + // HeapRegion index. + inline uint addr_to_index(HeapWord* addr) const; + // Insert the given region into the free region list. inline void insert_into_free_list(HeapRegion* hr); @@ -221,6 +228,9 @@ HeapRegion* next_region_in_heap(const HeapRegion* r) const; + // Find the highest available empty or uncommitted region in the reserved heap. + uint find_highest_available(bool* expanded); + // Apply blk->doHeapRegion() on all committed regions in address order, // terminating the iteration early if doHeapRegion() returns true. void iterate(HeapRegionClosure* blk) const;