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 111 } // namespace
112 112  
113 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 118 offset(offset),
125   - length(length),
  119 + length(foreign.getLength()),
126 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 699 result.replaceStreamData(
706 700 m->copied_stream_data_provider, dict["/Filter"], dict["/DecodeParms"]);
707 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 703 m->copied_stream_data_provider->registerForeignStream(local_og, foreign_stream_data);
717 704 result.replaceStreamData(
718 705 m->copied_stream_data_provider, dict["/Filter"], dict["/DecodeParms"]);
... ...
libqpdf/qpdf/QPDF_private.hh
... ... @@ -102,14 +102,7 @@ class QPDF::ForeignStreamData
102 102 friend class QPDF;
103 103  
104 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 107 private:
115 108 std::shared_ptr<EncryptionParameters> encp;
... ...