libluna: Add assignment operators to Buffer

This commit is contained in:
apio 2023-08-04 15:10:33 +02:00
parent 653b2074c0
commit a5d33fdf44
Signed by: apio
GPG Key ID: B8A7D06E42258954
2 changed files with 13 additions and 0 deletions

View File

@ -11,6 +11,9 @@ class Buffer
Buffer(Buffer&& other);
Buffer(const Buffer& other) = delete; // For now.
Buffer& operator=(Buffer&&);
Buffer& operator=(const Buffer&) = delete;
static Result<Buffer> create_sized(usize size);
Result<void> try_resize(usize new_size);

View File

@ -15,6 +15,16 @@ Buffer::Buffer(Buffer&& other) : m_data(other.data()), m_size(other.size())
other.m_data = nullptr;
}
Buffer& Buffer::operator=(Buffer&& other)
{
if (&other == this) return *this;
if (m_data) free_impl(m_data);
m_data = other.m_data;
m_size = other.m_size;
other.m_data = nullptr;
return *this;
}
Buffer::~Buffer()
{
if (m_data) free_impl(m_data);