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,23 +37,21 @@ Pl_TIFFPredictor::Pl_TIFFPredictor(
37 void 37 void
38 Pl_TIFFPredictor::write(unsigned char const* data, size_t len) 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 // finish off current row 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 processRow(); 48 processRow();
49 49
50 // Prepare for next row 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 void 57 void