Lines Matching refs:itr
179 auto itr = ends_after;
182 if (elem.bitoff >= itr->bitoff) {
186 elem.bitlen += elem.bitoff - itr->bitoff;
187 num_bits_ += elem.bitoff - itr->bitoff;
188 elem.bitoff = itr->bitoff;
193 while (itr != elems_.end()) {
194 if (itr->bitoff > max) {
198 max = fbl::max(max, itr->bitoff + itr->bitlen);
199 num_bits_ += max - elem.bitoff - itr->bitlen - elem.bitlen;
201 auto to_erase = itr;
202 ++itr;
219 auto itr = elems_.begin();
220 while (itr != elems_.end()) {
221 if (itr->bitoff + itr->bitlen < bitoff) {
222 ++itr;
225 if (bitmax < itr->bitoff) {
228 if (itr->bitoff < bitoff) {
229 if (itr->bitoff + itr->bitlen <= bitmax) {
230 // '*itr' contains 'bitoff'.
231 num_bits_ -= (itr->bitlen - (bitoff - itr->bitoff));
232 itr->bitlen = bitoff - itr->bitoff;
233 ++itr;
236 // '*itr' contains [bitoff, bitmax), and we need to split it.
243 new_elem->bitlen = itr->bitoff + itr->bitlen - bitmax;
245 elems_.insert_after(itr, fbl::move(new_elem));
246 itr->bitlen = bitoff - itr->bitoff;
251 if (bitmax < itr->bitoff + itr->bitlen) {
253 num_bits_ -= (bitmax - itr->bitoff);
254 itr->bitlen = itr->bitoff + itr->bitlen - bitmax;
255 itr->bitoff = bitmax;
258 // [bitoff, bitmax) fully contains '*itr'.
259 num_bits_ -= itr->bitlen;
260 auto to_erase = itr++;