Commit 8191d4cdad3e6bcc7caedf1a81c09ce1c602cde8

Authored by m-holger
1 parent fafd50bb

Refactor `QPDFEFStreamObjectHelper::newFromStream`: use `qpdf::String` and `qpdf…

…::types` helpers, simplify pipeline usage, and clean up includes.
libqpdf/QPDFEFStreamObjectHelper.cc
1 1 #include <qpdf/QPDFEFStreamObjectHelper.hh>
2 2  
3   -#include <qpdf/Pl_Count.hh>
4   -#include <qpdf/Pl_Discard.hh>
  3 +#include <qpdf/Pipeline_private.hh>
5 4 #include <qpdf/Pl_MD5.hh>
6 5 #include <qpdf/QIntC.hh>
7 6 #include <qpdf/QPDF.hh>
... ... @@ -91,7 +90,7 @@ QPDFEFStreamObjectHelper::getChecksum()
91 90 QPDFEFStreamObjectHelper
92 91 QPDFEFStreamObjectHelper::createEFStream(QPDF& qpdf, std::shared_ptr<Buffer> data)
93 92 {
94   - return newFromStream(qpdf.newStream(data));
  93 + return newFromStream(qpdf.newStream(std::move(data)));
95 94 }
96 95  
97 96 QPDFEFStreamObjectHelper
... ... @@ -104,7 +103,7 @@ QPDFEFStreamObjectHelper
104 103 QPDFEFStreamObjectHelper::createEFStream(QPDF& qpdf, std::function<void(Pipeline*)> provider)
105 104 {
106 105 auto stream = qpdf.newStream();
107   - stream.replaceStreamData(provider, QPDFObjectHandle::newNull(), QPDFObjectHandle::newNull());
  106 + stream.replaceStreamData(provider, {}, {});
108 107 return newFromStream(stream);
109 108 }
110 109  
... ... @@ -125,7 +124,7 @@ QPDFEFStreamObjectHelper::setModDate(std::string const&amp; date)
125 124 QPDFEFStreamObjectHelper&
126 125 QPDFEFStreamObjectHelper::setSubtype(std::string const& subtype)
127 126 {
128   - oh().getDict().replaceKey("/Subtype", QPDFObjectHandle::newName("/" + subtype));
  127 + oh().getDict().replaceKey("/Subtype", Name("/" + subtype));
129 128 return *this;
130 129 }
131 130  
... ... @@ -133,18 +132,16 @@ QPDFEFStreamObjectHelper
133 132 QPDFEFStreamObjectHelper::newFromStream(QPDFObjectHandle stream)
134 133 {
135 134 QPDFEFStreamObjectHelper result(stream);
136   - stream.getDict().replaceKey("/Type", QPDFObjectHandle::newName("/EmbeddedFile"));
137   - Pl_Discard discard;
  135 + stream.getDict().replaceKey("/Type", Name("/EmbeddedFile"));
138 136 // The PDF spec specifies use of MD5 here and notes that it is not to be used for security. MD5
139 137 // is known to be insecure.
140   - Pl_MD5 md5("EF md5", &discard);
141   - Pl_Count count("EF size", &md5);
  138 + Pl_MD5 md5("EF md5");
  139 + pl::Count count(0, &md5);
142 140 if (!stream.pipeStreamData(&count, nullptr, 0, qpdf_dl_all)) {
143 141 stream.warn("unable to get stream data for new embedded file stream");
144 142 } else {
145   - result.setParam("/Size", QPDFObjectHandle::newInteger(count.getCount()));
146   - result.setParam(
147   - "/CheckSum", QPDFObjectHandle::newString(QUtil::hex_decode(md5.getHexDigest())));
  143 + result.setParam("/Size", Integer(count.getCount()));
  144 + result.setParam("/CheckSum", String(QUtil::hex_decode(md5.getHexDigest())));
148 145 }
149 146 return result;
150 147 }
... ...