From d16308b3f5b111a23e0290e14b54fda4455265f0 Mon Sep 17 00:00:00 2001 From: m-holger Date: Sun, 22 Jan 2023 18:25:17 +0000 Subject: Tune QPDFWriter::writeString etc methods Use string_view parameters and call pipeline write methods directly. --- include/qpdf/QPDFWriter.hh | 7 ++++--- libqpdf/QPDFWriter.cc | 19 +++++++++++-------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/include/qpdf/QPDFWriter.hh b/include/qpdf/QPDFWriter.hh index af6c15be..8faf9c32 100644 --- a/include/qpdf/QPDFWriter.hh +++ b/include/qpdf/QPDFWriter.hh @@ -36,6 +36,7 @@ #include #include #include +#include #include #include @@ -553,10 +554,10 @@ class QPDFWriter unsigned int bytesNeeded(long long n); void writeBinary(unsigned long long val, unsigned int bytes); - void writeString(std::string const& str); + void writeString(std::string_view str); void writeBuffer(std::shared_ptr&); - void writeStringQDF(std::string const& str); - void writeStringNoQDF(std::string const& str); + void writeStringQDF(std::string_view str); + void writeStringNoQDF(std::string_view str); void writePad(size_t nspaces); void assignCompressedObjectNumbers(QPDFObjGen const& og); void enqueueObject(QPDFObjectHandle object); diff --git a/libqpdf/QPDFWriter.cc b/libqpdf/QPDFWriter.cc index 06858eb3..907cc105 100644 --- a/libqpdf/QPDFWriter.cc +++ b/libqpdf/QPDFWriter.cc @@ -982,9 +982,10 @@ QPDFWriter::writeBinary(unsigned long long val, unsigned int bytes) } void -QPDFWriter::writeString(std::string const& str) +QPDFWriter::writeString(std::string_view str) { - this->m->pipeline->writeString(str); + m->pipeline->write( + reinterpret_cast(str.data()), str.size()); } void @@ -994,18 +995,20 @@ QPDFWriter::writeBuffer(std::shared_ptr& b) } void -QPDFWriter::writeStringQDF(std::string const& str) +QPDFWriter::writeStringQDF(std::string_view str) { - if (this->m->qdf_mode) { - writeString(str); + if (m->qdf_mode) { + m->pipeline->write( + reinterpret_cast(str.data()), str.size()); } } void -QPDFWriter::writeStringNoQDF(std::string const& str) +QPDFWriter::writeStringNoQDF(std::string_view str) { - if (!this->m->qdf_mode) { - writeString(str); + if (!m->qdf_mode) { + m->pipeline->write( + reinterpret_cast(str.data()), str.size()); } } -- cgit v1.2.3-54-g00ecf