diff options
author | James R. Barlow <james@purplerock.ca> | 2022-09-04 23:48:25 +0200 |
---|---|---|
committer | James R. Barlow <james@purplerock.ca> | 2022-09-05 22:29:56 +0200 |
commit | 12967bdf8a271faeaf160b88bc8c5c800703af82 (patch) | |
tree | 642d4000430b037c2cea9ad2f44fc8e8e87e70dc /include | |
parent | 952b00aecd7bfdf9db50eb6b3d922ce17e1b606c (diff) | |
download | qpdf-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.hh | 6 |
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 |