From d946ad6c3076073b9950df2ee25304c2d2a999ad Mon Sep 17 00:00:00 2001 From: m-holger Date: Sat, 27 Jan 2024 17:03:32 +0000 Subject: [PATCH] In Pl_TIFFPredictor::processRow buffer output --- libqpdf/Pl_TIFFPredictor.cc | 5 +++-- 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(255U & new_sample); - p_next->write(&out, 1); + out.push_back(static_cast(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 cur_row; std::vector previous; + std::vector out; Pipeline* p_next; };