Commit 368666899fe24885fbe05ea03688fa985645ebd9

Authored by m-holger
1 parent ddad5ad5

Refactor InlineImageTracker::handleToken

libqpdf/QPDFPageObjectHelper.cc
@@ -175,14 +175,11 @@ InlineImageTracker::handleToken(QPDFTokenizer::Token const& token) @@ -175,14 +175,11 @@ InlineImageTracker::handleToken(QPDFTokenizer::Token const& token)
175 size_t len = image_data.length(); 175 size_t len = image_data.length();
176 if (len >= this->min_size) { 176 if (len >= this->min_size) {
177 QTC::TC("qpdf", "QPDFPageObjectHelper externalize inline image"); 177 QTC::TC("qpdf", "QPDFPageObjectHelper externalize inline image");
178 - Pl_Buffer b("image_data");  
179 - b.writeString(image_data);  
180 - b.finish();  
181 QPDFObjectHandle dict = convertIIDict(QPDFObjectHandle::parse(dict_str)); 178 QPDFObjectHandle dict = convertIIDict(QPDFObjectHandle::parse(dict_str));
182 dict.replaceKey("/Length", QPDFObjectHandle::newInteger(QIntC::to_longlong(len))); 179 dict.replaceKey("/Length", QPDFObjectHandle::newInteger(QIntC::to_longlong(len)));
183 std::string name = resources.getUniqueResourceName("/IIm", this->min_suffix); 180 std::string name = resources.getUniqueResourceName("/IIm", this->min_suffix);
184 QPDFObjectHandle image = 181 QPDFObjectHandle image =
185 - QPDFObjectHandle::newStream(this->qpdf, b.getBufferSharedPointer()); 182 + QPDFObjectHandle::newStream(this->qpdf, std::make_shared<Buffer>(std::move(image_data)));
186 image.replaceDict(dict); 183 image.replaceDict(dict);
187 resources.getKey("/XObject").replaceKey(name, image); 184 resources.getKey("/XObject").replaceKey(name, image);
188 write(name); 185 write(name);