Commit 73dec35209cfcdb83a3cb08c6c47734a9291ec1f
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 |