diff options
-rw-r--r-- | include/qpdf/QPDFWriter.hh | 7 | ||||
-rw-r--r-- | 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 <set> #include <stdio.h> #include <string> +#include <string_view> #include <vector> #include <qpdf/Constants.h> @@ -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<Buffer>&); - 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<unsigned char const*>(str.data()), str.size()); } void @@ -994,18 +995,20 @@ QPDFWriter::writeBuffer(std::shared_ptr<Buffer>& 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<unsigned char const*>(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<unsigned char const*>(str.data()), str.size()); } } |