--- old/src/share/vm/gc/g1/heapRegionManager.cpp 2015-08-11 11:49:21.052673794 -0400 +++ new/src/share/vm/gc/g1/heapRegionManager.cpp 2015-08-11 11:49:20.460639762 -0400 @@ -437,6 +437,13 @@ return removed; } +void HeapRegionManager::shrink_at(uint index) { + assert(is_available(index), err_msg("Expected available region at index %u", index)); + HeapRegion* curr_region = _regions.get_by_index(index); + assert(curr_region->is_free(), err_msg("Expected free region at index %u", index)); + uncommit_regions(index, 1); +} + uint HeapRegionManager::find_empty_from_idx_reverse(uint start_idx, uint* res_idx) const { guarantee(start_idx < _allocated_heapregions_length, "checking"); guarantee(res_idx != NULL, "checking");