diff options
| author | Kelebek1 <eeeedddccc@hotmail.co.uk> | 2023-07-04 16:02:58 +0100 |
|---|---|---|
| committer | Kelebek1 <eeeedddccc@hotmail.co.uk> | 2023-07-04 16:02:58 +0100 |
| commit | ba4569eab72faf4fd145fd13c71ae3de0c14bb03 (patch) | |
| tree | dd7530264e9299aa8f5bdec7ab445807a55e3d54 /src/common/scratch_buffer.h | |
| parent | 42638691b541a29e0362c8aba6da3e2e873457c2 (diff) | |
Fix ScratchBuffer moves
Diffstat (limited to 'src/common/scratch_buffer.h')
| -rw-r--r-- | src/common/scratch_buffer.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/common/scratch_buffer.h b/src/common/scratch_buffer.h index d5961b0208..2a98cda539 100644 --- a/src/common/scratch_buffer.h +++ b/src/common/scratch_buffer.h @@ -40,8 +40,21 @@ public: ~ScratchBuffer() = default; ScratchBuffer(const ScratchBuffer&) = delete; ScratchBuffer& operator=(const ScratchBuffer&) = delete; - ScratchBuffer(ScratchBuffer&&) = default; - ScratchBuffer& operator=(ScratchBuffer&&) = default; + + ScratchBuffer(ScratchBuffer&& other) noexcept { + swap(other); + other.last_requested_size = 0; + other.buffer_capacity = 0; + other.buffer.reset(); + } + + ScratchBuffer& operator=(ScratchBuffer&& other) noexcept { + swap(other); + other.last_requested_size = 0; + other.buffer_capacity = 0; + other.buffer.reset(); + return *this; + } /// This will only grow the buffer's capacity if size is greater than the current capacity. /// The previously held data will remain intact. |
