aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJames R. Barlow <james@purplerock.ca>2022-09-04 23:48:25 +0200
committerJames R. Barlow <james@purplerock.ca>2022-09-05 22:29:56 +0200
commit12967bdf8a271faeaf160b88bc8c5c800703af82 (patch)
tree642d4000430b037c2cea9ad2f44fc8e8e87e70dc /include
parent952b00aecd7bfdf9db50eb6b3d922ce17e1b606c (diff)
downloadqpdf-12967bdf8a271faeaf160b88bc8c5c800703af82.tar.zst
Take advantage of unique_ptr and move construction for Buffer
Since Buffer has always implemented its copy constructor with a deep copy, its Members object will never have multiple owners. Change to unique_ptr. Also implement move constructors for Buffer, since there may be cases where a deep copy is not needed.
Diffstat (limited to 'include')
-rw-r--r--include/qpdf/Buffer.hh6
1 files changed, 5 insertions, 1 deletions
diff --git a/include/qpdf/Buffer.hh b/include/qpdf/Buffer.hh
index fdb07ba7..56441df9 100644
--- a/include/qpdf/Buffer.hh
+++ b/include/qpdf/Buffer.hh
@@ -49,6 +49,10 @@ class Buffer
QPDF_DLL
Buffer& operator=(Buffer const&);
QPDF_DLL
+ Buffer(Buffer &&) noexcept;
+ QPDF_DLL
+ Buffer& operator=(Buffer &&) noexcept;
+ QPDF_DLL
size_t getSize() const;
QPDF_DLL
unsigned char const* getBuffer() const;
@@ -75,7 +79,7 @@ class Buffer
void copy(Buffer const&);
- std::shared_ptr<Members> m;
+ std::unique_ptr<Members> m;
};
#endif // BUFFER_HH