< prev index next >
src/hotspot/share/utilities/bitMap.hpp
Print this page
rev 57601 : [mq]: metaspace-improvement
*** 193,202 ****
--- 193,203 ----
static idx_t calc_size_in_bytes(size_t size_in_bits) {
return calc_size_in_words(size_in_bits) * BytesPerWord;
}
+ // Size, in number of bits, of this map.
idx_t size() const { return _size; }
idx_t size_in_words() const { return calc_size_in_words(size()); }
idx_t size_in_bytes() const { return calc_size_in_bytes(size()); }
bool at(idx_t index) const {
*** 251,265 ****
// Clearing
void clear_large();
inline void clear();
! // Iteration support. Returns "true" if the iteration completed, false
// if the iteration terminated early (because the closure "blk" returned
// false).
! bool iterate(BitMapClosure* blk, idx_t leftIndex, idx_t rightIndex);
! bool iterate(BitMapClosure* blk) {
// call the version that takes an interval
return iterate(blk, 0, size());
}
// Looking for 1's and 0's at indices equal to or greater than "l_index",
--- 252,266 ----
// Clearing
void clear_large();
inline void clear();
! // Iteration support [leftIndex, rightIndex). Returns "true" if the iteration completed, false
// if the iteration terminated early (because the closure "blk" returned
// false).
! bool iterate(BitMapClosure* blk, idx_t leftIndex, idx_t rightIndex) const;
! bool iterate(BitMapClosure* blk) const {
// call the version that takes an interval
return iterate(blk, 0, size());
}
// Looking for 1's and 0's at indices equal to or greater than "l_index",
*** 277,286 ****
--- 278,290 ----
// Like "get_next_one_offset", except requires that "r_index" is
// aligned to bitsizeof(bm_word_t).
idx_t get_next_one_offset_aligned_right(idx_t l_index, idx_t r_index) const;
+ // Returns the number of bits set between [l_index, r_index) in the bitmap.
+ idx_t count_one_bits(idx_t l_index, idx_t r_index) const;
+
// Returns the number of bits set in the bitmap.
idx_t count_one_bits() const;
// Set operations.
void set_union(const BitMap& bits);
< prev index next >