Commit cabd582ea61d56206c31499c4b04ce0f4ad786d2

Authored by m-holger
1 parent 43f2fa1d

Refactor `ForeignStreamData`: simplify constructor and streamline initialization logic.

libqpdf/QPDF.cc
@@ -111,20 +111,14 @@ namespace @@ -111,20 +111,14 @@ namespace
111 } // namespace 111 } // namespace
112 112
113 QPDF::ForeignStreamData::ForeignStreamData( 113 QPDF::ForeignStreamData::ForeignStreamData(
114 - std::shared_ptr<EncryptionParameters> encp,  
115 - std::shared_ptr<InputSource> file,  
116 - QPDFObjGen foreign_og,  
117 - qpdf_offset_t offset,  
118 - size_t length,  
119 - QPDFObjectHandle local_dict,  
120 - bool is_root_metadata) :  
121 - encp(encp),  
122 - file(file),  
123 - foreign_og(foreign_og), 114 + Stream& foreign, qpdf_offset_t offset, QPDFObjectHandle local_dict) :
  115 + encp(foreign.qpdf()->m->encp),
  116 + file(foreign.qpdf()->m->file),
  117 + foreign_og(foreign.id_gen()),
124 offset(offset), 118 offset(offset),
125 - length(length), 119 + length(foreign.getLength()),
126 local_dict(local_dict), 120 local_dict(local_dict),
127 - is_root_metadata(is_root_metadata) 121 + is_root_metadata(foreign.isRootMetadata())
128 { 122 {
129 } 123 }
130 124
@@ -705,14 +699,7 @@ QPDF::copyStreamData(QPDFObjectHandle result, QPDFObjectHandle foreign_oh) @@ -705,14 +699,7 @@ QPDF::copyStreamData(QPDFObjectHandle result, QPDFObjectHandle foreign_oh)
705 result.replaceStreamData( 699 result.replaceStreamData(
706 m->copied_stream_data_provider, dict["/Filter"], dict["/DecodeParms"]); 700 m->copied_stream_data_provider, dict["/Filter"], dict["/DecodeParms"]);
707 } else { 701 } else {
708 - auto foreign_stream_data = ForeignStreamData(  
709 - foreign_stream_qpdf.m->encp,  
710 - foreign_stream_qpdf.m->file,  
711 - foreign,  
712 - foreign.offset(),  
713 - foreign.getLength(),  
714 - dict,  
715 - foreign.isRootMetadata()); 702 + auto foreign_stream_data = ForeignStreamData(foreign, foreign_oh.offset(), dict);
716 m->copied_stream_data_provider->registerForeignStream(local_og, foreign_stream_data); 703 m->copied_stream_data_provider->registerForeignStream(local_og, foreign_stream_data);
717 result.replaceStreamData( 704 result.replaceStreamData(
718 m->copied_stream_data_provider, dict["/Filter"], dict["/DecodeParms"]); 705 m->copied_stream_data_provider, dict["/Filter"], dict["/DecodeParms"]);
libqpdf/qpdf/QPDF_private.hh
@@ -102,14 +102,7 @@ class QPDF::ForeignStreamData @@ -102,14 +102,7 @@ class QPDF::ForeignStreamData
102 friend class QPDF; 102 friend class QPDF;
103 103
104 public: 104 public:
105 - ForeignStreamData(  
106 - std::shared_ptr<EncryptionParameters> encp,  
107 - std::shared_ptr<InputSource> file,  
108 - QPDFObjGen foreign_og,  
109 - qpdf_offset_t offset,  
110 - size_t length,  
111 - QPDFObjectHandle local_dict,  
112 - bool is_root_metadata); 105 + ForeignStreamData(Stream& foreign, qpdf_offset_t offset, QPDFObjectHandle local_dict);
113 106
114 private: 107 private:
115 std::shared_ptr<EncryptionParameters> encp; 108 std::shared_ptr<EncryptionParameters> encp;