diff --git a/libobs/util/util.hpp b/libobs/util/util.hpp index 572ec088c..db4718646 100644 --- a/libobs/util/util.hpp +++ b/libobs/util/util.hpp @@ -20,6 +20,7 @@ #include #include +#include #include "bmem.h" #include "config-file.h" @@ -36,7 +37,7 @@ template class BPtr { public: inline BPtr(T *p = nullptr) : ptr(p) {} - inline BPtr(BPtr &&other) : ptr(other.ptr) { other.ptr = nullptr; } + inline BPtr(BPtr &&other) { *this = std::move(other); } inline ~BPtr() { bfree(ptr); } inline T *operator=(T *p) @@ -45,6 +46,14 @@ public: ptr = p; return p; } + + inline BPtr &operator=(BPtr &&other) + { + ptr = other.ptr; + other.ptr = nullptr; + return *this; + } + inline operator T *() { return ptr; } inline T **operator&() {