From a1cacea8fbeb224f31dc841076bce4c8c2028b0a Mon Sep 17 00:00:00 2001 From: Paul Ferrand Date: Mon, 30 Mar 2020 20:32:27 +0200 Subject: [PATCH] Explicit move to null the return pointer --- src/sfizz/BufferPool.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/sfizz/BufferPool.h b/src/sfizz/BufferPool.h index c0a378c7..0f58d529 100644 --- a/src/sfizz/BufferPool.h +++ b/src/sfizz/BufferPool.h @@ -27,8 +27,18 @@ public: SpanHolder() {} SpanHolder(const SpanHolder&) = delete; SpanHolder& operator=(const SpanHolder&) = delete; - SpanHolder(SpanHolder&&) = delete; - SpanHolder& operator=(SpanHolder&&) = delete; + SpanHolder(SpanHolder&& other) + { + this->value = other.value; + this->available = other.available; + other.available = nullptr; + } + SpanHolder& operator=(SpanHolder&& other) + { + this->value = other.value; + this->available = other.available; + other.available = nullptr; + } SpanHolder(T&& value, int* available) : value(std::forward(value)), available(available) {} T& operator*() { return value; }