aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf
diff options
context:
space:
mode:
authorm-holger <m-holger@kubitscheck.org>2024-01-27 18:03:32 +0100
committerm-holger <m-holger@kubitscheck.org>2024-01-27 18:16:53 +0100
commitd946ad6c3076073b9950df2ee25304c2d2a999ad (patch)
treeec0b4f945a7b587bc0f6a736930665bf00040ab3 /libqpdf
parent20ca1e8644339ebb3df84c645b2244b5f786a6b3 (diff)
downloadqpdf-d946ad6c3076073b9950df2ee25304c2d2a999ad.tar.zst
In Pl_TIFFPredictor::processRow buffer output
Diffstat (limited to 'libqpdf')
-rw-r--r--libqpdf/Pl_TIFFPredictor.cc5
-rw-r--r--libqpdf/qpdf/Pl_TIFFPredictor.hh1
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;
};