diff options
| author | Brick <samuelwilde@hotmail.com> | 2018-10-19 12:21:16 +0100 |
|---|---|---|
| committer | Brick <samuelwilde@hotmail.com> | 2018-10-19 12:21:16 +0100 |
| commit | 6c554162b307ba06102038f62113f5c336eab8a1 (patch) | |
| tree | 22fc40d8f301f4ead63f93cb49be12e906de7315 /databuffer.cpp | |
| parent | f556db4ee172437ba3177e13065cb19f01cddc2f (diff) | |
Added move constructor/assignment operator to DataBuffer
Diffstat (limited to 'databuffer.cpp')
| -rw-r--r-- | databuffer.cpp | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/databuffer.cpp b/databuffer.cpp index f2031842..92709572 100644 --- a/databuffer.cpp +++ b/databuffer.cpp @@ -47,6 +47,11 @@ DataBuffer::DataBuffer(const DataBuffer& buf) m_buffer = BNDuplicateDataBuffer(buf.m_buffer); } +DataBuffer::DataBuffer(DataBuffer&& buf) +{ + m_buffer = buf.m_buffer; + buf.m_buffer = BNCreateDataBuffer(nullptr, 0); +} DataBuffer::DataBuffer(BNDataBuffer* buf) { @@ -62,11 +67,27 @@ DataBuffer::~DataBuffer() DataBuffer& DataBuffer::operator=(const DataBuffer& buf) { - BNFreeDataBuffer(m_buffer); - m_buffer = BNDuplicateDataBuffer(buf.m_buffer); + if (this != &buf) + { + BNFreeDataBuffer(m_buffer); + m_buffer = BNDuplicateDataBuffer(buf.m_buffer); + } + return *this; } +DataBuffer& DataBuffer::operator=(DataBuffer&& buf) +{ + if (this != &buf) + { + BNClearDataBuffer(m_buffer); + BNDataBuffer* temp = m_buffer; + m_buffer = buf.m_buffer; + buf.m_buffer = temp; + } + + return *this; +} void* DataBuffer::GetData() { |
