From 8191d4cdad3e6bcc7caedf1a81c09ce1c602cde8 Mon Sep 17 00:00:00 2001 From: m-holger Date: Sun, 2 Nov 2025 11:30:34 +0000 Subject: [PATCH] Refactor `QPDFEFStreamObjectHelper::newFromStream`: use `qpdf::String` and `qpdf::types` helpers, simplify pipeline usage, and clean up includes. --- libqpdf/QPDFEFStreamObjectHelper.cc | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/libqpdf/QPDFEFStreamObjectHelper.cc b/libqpdf/QPDFEFStreamObjectHelper.cc index e6d82b9..4cc4796 100644 --- a/libqpdf/QPDFEFStreamObjectHelper.cc +++ b/libqpdf/QPDFEFStreamObjectHelper.cc @@ -1,7 +1,6 @@ #include -#include -#include +#include #include #include #include @@ -91,7 +90,7 @@ QPDFEFStreamObjectHelper::getChecksum() QPDFEFStreamObjectHelper QPDFEFStreamObjectHelper::createEFStream(QPDF& qpdf, std::shared_ptr data) { - return newFromStream(qpdf.newStream(data)); + return newFromStream(qpdf.newStream(std::move(data))); } QPDFEFStreamObjectHelper @@ -104,7 +103,7 @@ QPDFEFStreamObjectHelper QPDFEFStreamObjectHelper::createEFStream(QPDF& qpdf, std::function provider) { auto stream = qpdf.newStream(); - stream.replaceStreamData(provider, QPDFObjectHandle::newNull(), QPDFObjectHandle::newNull()); + stream.replaceStreamData(provider, {}, {}); return newFromStream(stream); } @@ -125,7 +124,7 @@ QPDFEFStreamObjectHelper::setModDate(std::string const& date) QPDFEFStreamObjectHelper& QPDFEFStreamObjectHelper::setSubtype(std::string const& subtype) { - oh().getDict().replaceKey("/Subtype", QPDFObjectHandle::newName("/" + subtype)); + oh().getDict().replaceKey("/Subtype", Name("/" + subtype)); return *this; } @@ -133,18 +132,16 @@ QPDFEFStreamObjectHelper QPDFEFStreamObjectHelper::newFromStream(QPDFObjectHandle stream) { QPDFEFStreamObjectHelper result(stream); - stream.getDict().replaceKey("/Type", QPDFObjectHandle::newName("/EmbeddedFile")); - Pl_Discard discard; + stream.getDict().replaceKey("/Type", Name("/EmbeddedFile")); // The PDF spec specifies use of MD5 here and notes that it is not to be used for security. MD5 // is known to be insecure. - Pl_MD5 md5("EF md5", &discard); - Pl_Count count("EF size", &md5); + Pl_MD5 md5("EF md5"); + pl::Count count(0, &md5); if (!stream.pipeStreamData(&count, nullptr, 0, qpdf_dl_all)) { stream.warn("unable to get stream data for new embedded file stream"); } else { - result.setParam("/Size", QPDFObjectHandle::newInteger(count.getCount())); - result.setParam( - "/CheckSum", QPDFObjectHandle::newString(QUtil::hex_decode(md5.getHexDigest()))); + result.setParam("/Size", Integer(count.getCount())); + result.setParam("/CheckSum", String(QUtil::hex_decode(md5.getHexDigest()))); } return result; } -- libgit2 0.21.4