< prev index next >
src/hotspot/share/gc/g1/heapRegionSet.hpp
Print this page
@@ -178,10 +178,14 @@
inline HeapRegion* remove_from_tail_impl();
inline void increase_length(uint node_index);
inline void decrease_length(uint node_index);
+ // Common checks for adding a list.
+ void add_list_common_start(FreeRegionList* from_list);
+ void add_list_common_end(FreeRegionList* from_list);
+
protected:
// See the comment for HeapRegionSetBase::clear()
virtual void clear();
public:
@@ -200,24 +204,31 @@
// Add hr to the list. The region should not be a member of another set.
// Assumes that the list is ordered and will preserve that order. The order
// is determined by hrm_index.
inline void add_ordered(HeapRegion* hr);
+ // Same restrictions as above, but adds the region last in the list.
+ inline void add_to_tail(HeapRegion* region_to_add);
// Removes from head or tail based on the given argument.
HeapRegion* remove_region(bool from_head);
HeapRegion* remove_region_with_node_index(bool from_head,
uint requested_node_index);
// Merge two ordered lists. The result is also ordered. The order is
// determined by hrm_index.
void add_ordered(FreeRegionList* from_list);
+ void append_ordered(FreeRegionList* from_list);
// It empties the list by removing all regions from it.
void remove_all();
+ // Abandon current free list. Requires that all regions in the current list
+ // are taken care of separately, to allow a rebuild.
+ void abandon();
+
// Remove all (contiguous) regions from first to first + num_regions -1 from
// this list.
// Num_regions must be > 1.
void remove_starting_at(HeapRegion* first, uint num_regions);
< prev index next >