From 73dec35209cfcdb83a3cb08c6c47734a9291ec1f Mon Sep 17 00:00:00 2001 From: m-holger Date: Sun, 21 Jan 2024 18:21:01 +0000 Subject: [PATCH] Simplify address arithmetic in Pl_TIFFPredictor --- libqpdf/Pl_TIFFPredictor.cc | 20 +++++++++----------- 1 file 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