From 5f347f3523fc6e34d55a6520b2b7b842c1b54e84 Mon Sep 17 00:00:00 2001 From: m-holger Date: Fri, 9 May 2025 13:36:38 +0100 Subject: [PATCH] Simplify decode parameters handling in streams --- libqpdf/QPDF_Stream.cc | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/libqpdf/QPDF_Stream.cc b/libqpdf/QPDF_Stream.cc index 026a72f..63047b0 100644 --- a/libqpdf/QPDF_Stream.cc +++ b/libqpdf/QPDF_Stream.cc @@ -407,22 +407,16 @@ Stream::filterable( } } } else { - std::vector decode_parms; - for (auto& item: decode_array) { - decode_parms.emplace_back(item); - } // Ignore /DecodeParms entirely if /Filters is empty. At least one case of a file whose // /DecodeParms was [ << >> ] when /Filters was empty has been seen in the wild. - if (!filters.empty() && decode_parms.size() != filters.size()) { + if (!filters.empty() && QIntC::to_size(decode_array.size()) != filters.size()) { warn("stream /DecodeParms length is inconsistent with filters"); return false; } - for (size_t i = 0; i < filters.size(); ++i) { - auto filter = filters.at(i); - auto decode_item = decode_parms.at(i); - - if (!filter->setDecodeParms(decode_item)) { + int i = -1; + for (auto& filter: filters) { + if (!filter->setDecodeParms(decode_array.at(++i).second)) { return false; } if (filter->isLossyCompression()) { -- libgit2 0.21.4