aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/Buffer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libqpdf/Buffer.cc')
-rw-r--r--libqpdf/Buffer.cc18
1 files changed, 18 insertions, 0 deletions
diff --git a/libqpdf/Buffer.cc b/libqpdf/Buffer.cc
index 3dddd5db..20453a40 100644
--- a/libqpdf/Buffer.cc
+++ b/libqpdf/Buffer.cc
@@ -27,6 +27,14 @@ Buffer::Members::Members(size_t size, unsigned char* buf, bool own_memory) :
}
}
+Buffer::Members::Members(std::string&& content) :
+ str(std::move(content)),
+ own_memory(false),
+ size(str.size()),
+ buf(reinterpret_cast<unsigned char*>(str.data()))
+{
+}
+
Buffer::Members::~Members()
{
if (this->own_memory) {
@@ -44,11 +52,21 @@ Buffer::Buffer(size_t size) :
{
}
+Buffer::Buffer(std::string&& content) :
+ m(new Members(std::move(content)))
+{
+}
+
Buffer::Buffer(unsigned char* buf, size_t size) :
m(new Members(size, buf, false))
{
}
+Buffer::Buffer(std::string& content) :
+ m(new Members(content.size(), reinterpret_cast<unsigned char*>(content.data()), false))
+{
+}
+
Buffer::Buffer(Buffer const& rhs)
{
assert(test_mode);