]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/buffer.cpp
Make Buffer::AsyncTransfer default-constructible and move-assignable
[libs/gl.git] / source / core / buffer.cpp
index b6f2e44b9e55555bebcfa08b80bf1ffeadb4a3c5..d5fc29d11635830042b1b065905c818c1d3ac79d 100644 (file)
@@ -76,7 +76,7 @@ bool Buffer::unmap()
 
 
 Buffer::AsyncTransfer::AsyncTransfer(Buffer &b, size_t o, size_t s):
-       buffer(b),
+       buffer(&b),
        offset(o),
        size(s),
        dest_addr(0)
@@ -93,6 +93,21 @@ Buffer::AsyncTransfer::AsyncTransfer(AsyncTransfer &&other):
        other.dest_addr = 0;
 }
 
+Buffer::AsyncTransfer &Buffer::AsyncTransfer::operator=(AsyncTransfer &&other)
+{
+       if(dest_addr)
+               finalize();
+
+       buffer = other.buffer;
+       offset = other.offset;
+       size = other.size;
+       dest_addr = other.dest_addr;
+
+       other.dest_addr = 0;
+
+       return *this;
+}
+
 Buffer::AsyncTransfer::~AsyncTransfer()
 {
        if(dest_addr)