diff options
author | m-holger <m-holger@kubitscheck.org> | 2024-01-21 19:21:01 +0100 |
---|---|---|
committer | m-holger <m-holger@kubitscheck.org> | 2024-01-26 21:44:07 +0100 |
commit | 73dec35209cfcdb83a3cb08c6c47734a9291ec1f (patch) | |
tree | b86cc54bdff466d9d562eef0e4f3e762a4364f85 | |
parent | 5b7a44e1cc97035226b001e10993a3ad394389dc (diff) | |
download | qpdf-73dec35209cfcdb83a3cb08c6c47734a9291ec1f.tar.zst |
Simplify address arithmetic in Pl_TIFFPredictor
-rw-r--r-- | libqpdf/Pl_TIFFPredictor.cc | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/libqpdf/Pl_TIFFPredictor.cc b/libqpdf/Pl_TIFFPredictor.cc index 462d364b..7535d38f 100644 --- a/libqpdf/Pl_TIFFPredictor.cc +++ b/libqpdf/Pl_TIFFPredictor.cc @@ -37,23 +37,21 @@ Pl_TIFFPredictor::Pl_TIFFPredictor( void Pl_TIFFPredictor::write(unsigned char const* data, size_t len) { - size_t left = this->bytes_per_row - cur_row.size(); - size_t offset = 0; - while (len >= left) { + auto end = data + len; + auto row_end = data + (bytes_per_row - cur_row.size()); + while (row_end <= end) { // finish off current row - cur_row.insert(cur_row.end(), data + offset, data + offset + left); - offset += left; - len -= left; + cur_row.insert(cur_row.end(), data, row_end); + data = row_end; + row_end += bytes_per_row; processRow(); // Prepare for next row - this->cur_row.clear(); - left = this->bytes_per_row; - } - if (len) { - cur_row.insert(cur_row.end(), data + offset, data + offset + len); + cur_row.clear(); } + + cur_row.insert(cur_row.end(), data, end); } void |