From cabd582ea61d56206c31499c4b04ce0f4ad786d2 Mon Sep 17 00:00:00 2001 From: m-holger Date: Thu, 2 Oct 2025 08:49:30 +0100 Subject: [PATCH] Refactor `ForeignStreamData`: simplify constructor and streamline initialization logic. --- libqpdf/QPDF.cc | 27 +++++++-------------------- libqpdf/qpdf/QPDF_private.hh | 9 +-------- 2 files changed, 8 insertions(+), 28 deletions(-) diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc index 6fb14c2..ae9905b 100644 --- a/libqpdf/QPDF.cc +++ b/libqpdf/QPDF.cc @@ -111,20 +111,14 @@ namespace } // namespace QPDF::ForeignStreamData::ForeignStreamData( - std::shared_ptr encp, - std::shared_ptr file, - QPDFObjGen foreign_og, - qpdf_offset_t offset, - size_t length, - QPDFObjectHandle local_dict, - bool is_root_metadata) : - encp(encp), - file(file), - foreign_og(foreign_og), + Stream& foreign, qpdf_offset_t offset, QPDFObjectHandle local_dict) : + encp(foreign.qpdf()->m->encp), + file(foreign.qpdf()->m->file), + foreign_og(foreign.id_gen()), offset(offset), - length(length), + length(foreign.getLength()), local_dict(local_dict), - is_root_metadata(is_root_metadata) + is_root_metadata(foreign.isRootMetadata()) { } @@ -705,14 +699,7 @@ QPDF::copyStreamData(QPDFObjectHandle result, QPDFObjectHandle foreign_oh) result.replaceStreamData( m->copied_stream_data_provider, dict["/Filter"], dict["/DecodeParms"]); } else { - auto foreign_stream_data = ForeignStreamData( - foreign_stream_qpdf.m->encp, - foreign_stream_qpdf.m->file, - foreign, - foreign.offset(), - foreign.getLength(), - dict, - foreign.isRootMetadata()); + auto foreign_stream_data = ForeignStreamData(foreign, foreign_oh.offset(), dict); m->copied_stream_data_provider->registerForeignStream(local_og, foreign_stream_data); result.replaceStreamData( m->copied_stream_data_provider, dict["/Filter"], dict["/DecodeParms"]); diff --git a/libqpdf/qpdf/QPDF_private.hh b/libqpdf/qpdf/QPDF_private.hh index f07a388..7a0c263 100644 --- a/libqpdf/qpdf/QPDF_private.hh +++ b/libqpdf/qpdf/QPDF_private.hh @@ -102,14 +102,7 @@ class QPDF::ForeignStreamData friend class QPDF; public: - ForeignStreamData( - std::shared_ptr encp, - std::shared_ptr file, - QPDFObjGen foreign_og, - qpdf_offset_t offset, - size_t length, - QPDFObjectHandle local_dict, - bool is_root_metadata); + ForeignStreamData(Stream& foreign, qpdf_offset_t offset, QPDFObjectHandle local_dict); private: std::shared_ptr encp; -- libgit2 0.21.4