128 DEBUG_ONLY(check_pointer(p)); |
128 DEBUG_ONLY(check_pointer(p)); |
129 const idx_t bitno = bitno_for_address(p); |
129 const idx_t bitno = bitno_for_address(p); |
130 return at(bitno); |
130 return at(bitno); |
131 } |
131 } |
132 |
132 |
133 // Given an address range [start..end), returns true if area is fully committed through. |
|
134 bool is_fully_committed_range(const MetaWord* start, size_t word_size) const { |
|
135 DEBUG_ONLY(check_range(start, word_size)); |
|
136 assert(word_size > 0, "zero range"); |
|
137 const idx_t b1 = bitno_for_address(start); |
|
138 const idx_t b2 = bitno_for_address(start + word_size); |
|
139 return get_next_zero_offset(b1, b2) == b2; |
|
140 } |
|
141 |
|
142 // Given an address range, return size, in number of words, of committed area within that range. |
133 // Given an address range, return size, in number of words, of committed area within that range. |
143 size_t get_committed_size_in_range(const MetaWord* start, size_t word_size) const { |
134 size_t get_committed_size_in_range(const MetaWord* start, size_t word_size) const { |
144 DEBUG_ONLY(check_range(start, word_size)); |
135 DEBUG_ONLY(check_range(start, word_size)); |
145 assert(word_size > 0, "zero range"); |
136 assert(word_size > 0, "zero range"); |
146 const idx_t b1 = bitno_for_address(start); |
137 const idx_t b1 = bitno_for_address(start); |