--- old/src/hotspot/share/gc/g1/heapRegionManager.hpp 2019-11-26 16:18:15.630869027 +0100 +++ new/src/hotspot/share/gc/g1/heapRegionManager.hpp 2019-11-26 16:18:15.206866924 +0100 @@ -172,11 +172,22 @@ // Insert the given region into the free region list. inline void insert_into_free_list(HeapRegion* hr); + // Abandon the current free list to allow for a rebuild. The actual + // region in the free list must be handled separately. + void abandon_free_list() { + _free_list.abandon(); + } + // Insert the given region list into the global free region list. void insert_list_into_free_list(FreeRegionList* list) { _free_list.add_ordered(list); } + // Append the list to the current list, requires the lists to be sorted. + void append_to_free_list(FreeRegionList* list) { + _free_list.append_ordered(list); + } + // Allocate a free region with specific node index. If fails allocate with next node index. virtual HeapRegion* allocate_free_region(HeapRegionType type, uint requested_node_index);