Commit 73dec35209cfcdb83a3cb08c6c47734a9291ec1f

Authored by m-holger
1 parent 5b7a44e1

Simplify address arithmetic in Pl_TIFFPredictor

Showing 1 changed file with 9 additions and 11 deletions
libqpdf/Pl_TIFFPredictor.cc
... ... @@ -37,23 +37,21 @@ Pl_TIFFPredictor::Pl_TIFFPredictor(
37 37 void
38 38 Pl_TIFFPredictor::write(unsigned char const* data, size_t len)
39 39 {
40   - size_t left = this->bytes_per_row - cur_row.size();
41   - size_t offset = 0;
42   - while (len >= left) {
  40 + auto end = data + len;
  41 + auto row_end = data + (bytes_per_row - cur_row.size());
  42 + while (row_end <= end) {
43 43 // finish off current row
44   - cur_row.insert(cur_row.end(), data + offset, data + offset + left);
45   - offset += left;
46   - len -= left;
  44 + cur_row.insert(cur_row.end(), data, row_end);
  45 + data = row_end;
  46 + row_end += bytes_per_row;
47 47  
48 48 processRow();
49 49  
50 50 // Prepare for next row
51   - this->cur_row.clear();
52   - left = this->bytes_per_row;
53   - }
54   - if (len) {
55   - cur_row.insert(cur_row.end(), data + offset, data + offset + len);
  51 + cur_row.clear();
56 52 }
  53 +
  54 + cur_row.insert(cur_row.end(), data, end);
57 55 }
58 56  
59 57 void
... ...