diff options
author | m-holger <m-holger@kubitscheck.org> | 2024-01-27 18:03:32 +0100 |
---|---|---|
committer | m-holger <m-holger@kubitscheck.org> | 2024-01-27 18:16:53 +0100 |
commit | d946ad6c3076073b9950df2ee25304c2d2a999ad (patch) | |
tree | ec0b4f945a7b587bc0f6a736930665bf00040ab3 /libqpdf | |
parent | 20ca1e8644339ebb3df84c645b2244b5f786a6b3 (diff) | |
download | qpdf-d946ad6c3076073b9950df2ee25304c2d2a999ad.tar.zst |
In Pl_TIFFPredictor::processRow buffer output
Diffstat (limited to 'libqpdf')
-rw-r--r-- | libqpdf/Pl_TIFFPredictor.cc | 5 | ||||
-rw-r--r-- | libqpdf/qpdf/Pl_TIFFPredictor.hh | 1 |
2 files changed, 4 insertions, 2 deletions
diff --git a/libqpdf/Pl_TIFFPredictor.cc b/libqpdf/Pl_TIFFPredictor.cc index a4addaae..ec477049 100644 --- a/libqpdf/Pl_TIFFPredictor.cc +++ b/libqpdf/Pl_TIFFPredictor.cc @@ -78,6 +78,7 @@ Pl_TIFFPredictor::processRow() } bw.flush(); } else { + out.clear(); auto next = cur_row.begin(); auto cr_end = cur_row.end(); auto pr_end = previous.end(); @@ -93,10 +94,10 @@ Pl_TIFFPredictor::processRow() new_sample += *prev; *prev = new_sample; } - auto out = static_cast<unsigned char>(255U & new_sample); - p_next->write(&out, 1); + out.push_back(static_cast<unsigned char>(255U & new_sample)); } } + p_next->write(out.data(), out.size()); } } diff --git a/libqpdf/qpdf/Pl_TIFFPredictor.hh b/libqpdf/qpdf/Pl_TIFFPredictor.hh index 4579ba1f..276ed54d 100644 --- a/libqpdf/qpdf/Pl_TIFFPredictor.hh +++ b/libqpdf/qpdf/Pl_TIFFPredictor.hh @@ -35,6 +35,7 @@ class Pl_TIFFPredictor: public Pipeline unsigned int bits_per_sample; std::vector<unsigned char> cur_row; std::vector<long long> previous; + std::vector<unsigned char> out; Pipeline* p_next; }; |