diff --git a/include/qpdf/QPDFWriter.hh b/include/qpdf/QPDFWriter.hh index af6c15b..8faf9c3 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 06858eb..907cc10 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()); } }