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 | 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 | ... | ... |