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 #include <qpdf/QPDFEFStreamObjectHelper.hh> 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 #include <qpdf/Pl_MD5.hh> 4 #include <qpdf/Pl_MD5.hh>
6 #include <qpdf/QIntC.hh> 5 #include <qpdf/QIntC.hh>
7 #include <qpdf/QPDF.hh> 6 #include <qpdf/QPDF.hh>
@@ -91,7 +90,7 @@ QPDFEFStreamObjectHelper::getChecksum() @@ -91,7 +90,7 @@ QPDFEFStreamObjectHelper::getChecksum()
91 QPDFEFStreamObjectHelper 90 QPDFEFStreamObjectHelper
92 QPDFEFStreamObjectHelper::createEFStream(QPDF& qpdf, std::shared_ptr<Buffer> data) 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 QPDFEFStreamObjectHelper 96 QPDFEFStreamObjectHelper
@@ -104,7 +103,7 @@ QPDFEFStreamObjectHelper @@ -104,7 +103,7 @@ QPDFEFStreamObjectHelper
104 QPDFEFStreamObjectHelper::createEFStream(QPDF& qpdf, std::function<void(Pipeline*)> provider) 103 QPDFEFStreamObjectHelper::createEFStream(QPDF& qpdf, std::function<void(Pipeline*)> provider)
105 { 104 {
106 auto stream = qpdf.newStream(); 105 auto stream = qpdf.newStream();
107 - stream.replaceStreamData(provider, QPDFObjectHandle::newNull(), QPDFObjectHandle::newNull()); 106 + stream.replaceStreamData(provider, {}, {});
108 return newFromStream(stream); 107 return newFromStream(stream);
109 } 108 }
110 109
@@ -125,7 +124,7 @@ QPDFEFStreamObjectHelper::setModDate(std::string const&amp; date) @@ -125,7 +124,7 @@ QPDFEFStreamObjectHelper::setModDate(std::string const&amp; date)
125 QPDFEFStreamObjectHelper& 124 QPDFEFStreamObjectHelper&
126 QPDFEFStreamObjectHelper::setSubtype(std::string const& subtype) 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 return *this; 128 return *this;
130 } 129 }
131 130
@@ -133,18 +132,16 @@ QPDFEFStreamObjectHelper @@ -133,18 +132,16 @@ QPDFEFStreamObjectHelper
133 QPDFEFStreamObjectHelper::newFromStream(QPDFObjectHandle stream) 132 QPDFEFStreamObjectHelper::newFromStream(QPDFObjectHandle stream)
134 { 133 {
135 QPDFEFStreamObjectHelper result(stream); 134 QPDFEFStreamObjectHelper result(stream);
136 - stream.getDict().replaceKey("/Type", QPDFObjectHandle::newName("/EmbeddedFile"));  
137 - Pl_Discard discard; 135 + stream.getDict().replaceKey("/Type", Name("/EmbeddedFile"));
138 // The PDF spec specifies use of MD5 here and notes that it is not to be used for security. MD5 136 // The PDF spec specifies use of MD5 here and notes that it is not to be used for security. MD5
139 // is known to be insecure. 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 if (!stream.pipeStreamData(&count, nullptr, 0, qpdf_dl_all)) { 140 if (!stream.pipeStreamData(&count, nullptr, 0, qpdf_dl_all)) {
143 stream.warn("unable to get stream data for new embedded file stream"); 141 stream.warn("unable to get stream data for new embedded file stream");
144 } else { 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 return result; 146 return result;
150 } 147 }