Fix ScratchBuffer moves
This commit is contained in:
parent
6f7cb69c94
commit
f1cfd9c219
|
@ -40,8 +40,21 @@ public:
|
||||||
~ScratchBuffer() = default;
|
~ScratchBuffer() = default;
|
||||||
ScratchBuffer(const ScratchBuffer&) = delete;
|
ScratchBuffer(const ScratchBuffer&) = delete;
|
||||||
ScratchBuffer& operator=(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.
|
/// This will only grow the buffer's capacity if size is greater than the current capacity.
|
||||||
/// The previously held data will remain intact.
|
/// The previously held data will remain intact.
|
||||||
|
|
Reference in New Issue