| 1426 | } |
| 1427 | |
| 1428 | inline void RleBitPackedEncoder::FlushRepeatedRun() { |
| 1429 | ARROW_DCHECK_GT(repeat_count_, 0); |
| 1430 | bool result = true; |
| 1431 | // The lsb of 0 indicates this is a repeated run |
| 1432 | int32_t indicator_value = repeat_count_ << 1 | 0; |
| 1433 | result &= bit_writer_.PutVlqInt(static_cast<uint32_t>(indicator_value)); |
| 1434 | result &= bit_writer_.PutAligned( |
| 1435 | current_value_, static_cast<int>(::arrow::bit_util::CeilDiv(bit_width_, 8))); |
| 1436 | ARROW_DCHECK(result); |
| 1437 | num_buffered_values_ = 0; |
| 1438 | repeat_count_ = 0; |
| 1439 | CheckBufferFull(); |
| 1440 | } |
| 1441 | |
| 1442 | /// Flush the values that have been buffered. At this point we decide whether |
| 1443 | /// we need to switch between the run types or continue the current one. |
nothing calls this directly
no test coverage detected