diff --git a/src/util/AllocatedArray.hxx b/src/util/AllocatedArray.hxx index cbb128307..b85614fad 100644 --- a/src/util/AllocatedArray.hxx +++ b/src/util/AllocatedArray.hxx @@ -76,7 +76,7 @@ public: :AllocatedArray(other.buffer) {} AllocatedArray(AllocatedArray &&other) noexcept - :buffer(std::exchange(other.buffer, nullptr)) {} + :buffer(other.release()) {} ~AllocatedArray() noexcept { delete[] buffer.data; @@ -259,6 +259,13 @@ public: buffer.size = _size; } + + /** + * Give up ownership of the allocated buffer and return it. + */ + Buffer release() noexcept { + return std::exchange(buffer, nullptr); + } }; #endif