aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf
diff options
context:
space:
mode:
authorm-holger <m-holger@kubitscheck.org>2024-01-21 19:21:01 +0100
committerm-holger <m-holger@kubitscheck.org>2024-01-26 21:44:07 +0100
commit73dec35209cfcdb83a3cb08c6c47734a9291ec1f (patch)
treeb86cc54bdff466d9d562eef0e4f3e762a4364f85 /libqpdf
parent5b7a44e1cc97035226b001e10993a3ad394389dc (diff)
downloadqpdf-73dec35209cfcdb83a3cb08c6c47734a9291ec1f.tar.zst
Simplify address arithmetic in Pl_TIFFPredictor
Diffstat (limited to 'libqpdf')
-rw-r--r--libqpdf/Pl_TIFFPredictor.cc20
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