* If range is not empty, set a range of values to valid from [start, end). * updateBounds() need to be called explicitly after setValidRange() call, it * can be called only once after multiple setValidRange() calls in a row. */
| 119 | * can be called only once after multiple setValidRange() calls in a row. |
| 120 | */ |
| 121 | void setValidRange(vector_size_t begin, vector_size_t end, bool valid) { |
| 122 | BOLT_DCHECK_GE(end, begin); |
| 123 | if (begin == end) { |
| 124 | return; |
| 125 | } |
| 126 | BOLT_DCHECK_LE(end, bits_.size() * sizeof(bits_[0]) * 8); |
| 127 | bits::fillBits(bits_.data(), begin, end, valid); |
| 128 | allSelected_.reset(); |
| 129 | } |
| 130 | |
| 131 | /** |
| 132 | * @return true if given index is selected, false if not |