mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-09-24 23:31:36 +08:00
updated BPtr semantics to be more in line with stl smart pointers
This commit is contained in:
+2
-2
@@ -70,7 +70,7 @@ static bool do_mkdir(const char *path)
|
||||
|
||||
static bool MakeUserDirs()
|
||||
{
|
||||
BPtr<char*> homePath(os_get_home_path());
|
||||
BPtr<char> homePath(os_get_home_path());
|
||||
stringstream str;
|
||||
|
||||
str << homePath << "/obs-studio";
|
||||
@@ -82,7 +82,7 @@ static bool MakeUserDirs()
|
||||
|
||||
bool OBSApp::InitGlobalConfig()
|
||||
{
|
||||
BPtr<char*> homePath = os_get_home_path();
|
||||
BPtr<char> homePath(os_get_home_path());
|
||||
stringstream str;
|
||||
|
||||
if (!homePath) {
|
||||
|
||||
@@ -27,20 +27,20 @@
|
||||
/* RAII wrappers */
|
||||
|
||||
template<typename T> class BPtr {
|
||||
T ptr;
|
||||
T *ptr;
|
||||
|
||||
BPtr(BPtr const&) = delete;
|
||||
|
||||
BPtr &operator=(BPtr const&) = delete;
|
||||
|
||||
public:
|
||||
inline BPtr(T p=nullptr) : ptr(p) {}
|
||||
inline BPtr(T *p=nullptr) : ptr(p) {}
|
||||
inline BPtr(BPtr &&other) : ptr(other.ptr) {other.ptr = nullptr;}
|
||||
inline ~BPtr() {bfree(ptr);}
|
||||
|
||||
inline T operator=(T p) {bfree(ptr); ptr = p; return p;}
|
||||
inline operator T() {return ptr;}
|
||||
inline T *operator&() {bfree(ptr); ptr = NULL; return &ptr;}
|
||||
inline T *operator=(T *p) {bfree(ptr); ptr = p; return p;}
|
||||
inline operator T*() {return ptr;}
|
||||
inline T **operator&() {bfree(ptr); ptr = nullptr; return &ptr;}
|
||||
|
||||
inline bool operator!() {return ptr == NULL;}
|
||||
inline bool operator==(T p) {return ptr == p;}
|
||||
|
||||
Reference in New Issue
Block a user