From 675c9ae7c55ea1567aecc4e414b546025ba41fdf Mon Sep 17 00:00:00 2001 From: m-holger Date: Tue, 7 Oct 2025 11:40:22 +0100 Subject: [PATCH] Refactor `pipeForeignStreamData` logic: streamline conditional checks, improve foreign stream handling, and simplify return logic. --- libqpdf/QPDF.cc | 23 +++++++++++++---------- qpdf/qpdf.testcov | 2 -- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc index b34b8a3..6cefbad 100644 --- a/libqpdf/QPDF.cc +++ b/libqpdf/QPDF.cc @@ -135,18 +135,21 @@ Streams::Copier::provideStreamData( QPDFObjGen const& og, Pipeline* pipeline, bool suppress_warnings, bool will_retry) { auto data = copied_data.find(og); - bool result = false; if (data != copied_data.end()) { - result = streams.qpdf().pipeForeignStreamData( - data->second, pipeline, suppress_warnings, will_retry); - QTC::TC("qpdf", "QPDF copy foreign with data", result ? 0 : 1); - } else { - auto stream = copied_streams[og]; - result = stream.pipeStreamData( - pipeline, nullptr, 0, qpdf_dl_none, suppress_warnings, will_retry); - QTC::TC("qpdf", "QPDF copy foreign with foreign_stream", result ? 0 : 1); + if (streams.qpdf().pipeForeignStreamData( + data->second, pipeline, suppress_warnings, will_retry)) { + return true; // for CI coverage + } else { + return false; + } } - return result; + auto stream = copied_streams.find(og); + if (stream != copied_streams.end() && + stream->second.pipeStreamData( + pipeline, nullptr, 0, qpdf_dl_none, suppress_warnings, will_retry)) { + return true; // for CI coverage + } + return false; } QPDF::StringDecrypter::StringDecrypter(QPDF* qpdf, QPDFObjGen og) : diff --git a/qpdf/qpdf.testcov b/qpdf/qpdf.testcov index e4d3e82..cccb8a0 100644 --- a/qpdf/qpdf.testcov +++ b/qpdf/qpdf.testcov @@ -277,8 +277,6 @@ QPDFPageObjectHelper filter form xobject 0 QPDFJob found resources in non-leaf 0 QPDFJob found shared resources in leaf 0 QPDFJob found shared xobject in leaf 0 -QPDF copy foreign with data 1 -QPDF copy foreign with foreign_stream 1 QPDFObjectHandle need_newline 1 QPDFJob pages range omitted with . 0 qpdf-c invalid object handle 0 -- libgit2 0.21.4