From 95424109ac7770a925517a7b81304062fe163959 Mon Sep 17 00:00:00 2001 From: m-holger Date: Tue, 7 Oct 2025 13:28:56 +0100 Subject: [PATCH] Remove `pipeForeignStreamData`: inline logic into `Streams::Copier::pipeStreamData`and streamline foreign stream handling. --- include/qpdf/QPDF.hh | 2 -- libqpdf/QPDF.cc | 37 ++++++++++++++----------------------- qpdf/qpdf.testcov | 2 +- 3 files changed, 15 insertions(+), 26 deletions(-) diff --git a/include/qpdf/QPDF.hh b/include/qpdf/QPDF.hh index 67d6652..84e31ae 100644 --- a/include/qpdf/QPDF.hh +++ b/include/qpdf/QPDF.hh @@ -773,8 +773,6 @@ class QPDF Pipeline* pipeline, bool suppress_warnings, bool will_retry); - bool - pipeForeignStreamData(ForeignStreamData&, Pipeline*, bool suppress_warnings, bool will_retry); static bool pipeStreamData( std::shared_ptr encp, std::shared_ptr file, diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc index 6cefbad..b580058 100644 --- a/libqpdf/QPDF.cc +++ b/libqpdf/QPDF.cc @@ -136,8 +136,20 @@ Streams::Copier::provideStreamData( { auto data = copied_data.find(og); if (data != copied_data.end()) { - if (streams.qpdf().pipeForeignStreamData( - data->second, pipeline, suppress_warnings, will_retry)) { + auto& fd = data->second; + QTC::TC("qpdf", "QPDF pipe foreign encrypted stream", fd.encp->encrypted ? 0 : 1); + if (streams.qpdf().pipeStreamData( + fd.encp, + fd.file, + streams.qpdf(), + fd.foreign_og, + fd.offset, + fd.length, + fd.local_dict, + fd.is_root_metadata, + pipeline, + suppress_warnings, + will_retry)) { return true; // for CI coverage } else { return false; @@ -895,27 +907,6 @@ QPDF::pipeStreamData( will_retry); } -bool -QPDF::pipeForeignStreamData( - ForeignStreamData& foreign, Pipeline* pipeline, bool suppress_warnings, bool will_retry) -{ - if (foreign.encp->encrypted) { - QTC::TC("qpdf", "QPDF pipe foreign encrypted stream"); - } - return pipeStreamData( - foreign.encp, - foreign.file, - *this, - foreign.foreign_og, - foreign.offset, - foreign.length, - foreign.local_dict, - foreign.is_root_metadata, - pipeline, - suppress_warnings, - will_retry); -} - // Throw a generic exception when we lack context for something more specific. New code should not // use this. void diff --git a/qpdf/qpdf.testcov b/qpdf/qpdf.testcov index cccb8a0..d73deef 100644 --- a/qpdf/qpdf.testcov +++ b/qpdf/qpdf.testcov @@ -244,7 +244,7 @@ QPDFFormFieldObjectHelper list last too high 0 QPDFJob image optimize no pipeline 0 QPDFJob image optimize no shrink 0 QPDFJob image optimize too small 0 -QPDF pipe foreign encrypted stream 0 +QPDF pipe foreign encrypted stream 1 QPDFJob copy same page more than once 1 QPDFPageObjectHelper bad token finding names 0 QPDFJob password mode bytes 0 -- libgit2 0.21.4