From 23f43f46dbedc34da5bfdc718a61c7a4d321ed2a Mon Sep 17 00:00:00 2001 From: jpark37 Date: Tue, 14 Sep 2021 21:12:02 -0700 Subject: [PATCH] libobs: Support move for mismatched ComPtr --- libobs/util/windows/ComPtr.hpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libobs/util/windows/ComPtr.hpp b/libobs/util/windows/ComPtr.hpp index 9a3c4740f..5f9a4dbf1 100644 --- a/libobs/util/windows/ComPtr.hpp +++ b/libobs/util/windows/ComPtr.hpp @@ -58,6 +58,10 @@ public: ptr->AddRef(); } inline ComPtr(ComPtr &&c) noexcept : ptr(c.ptr) { c.ptr = nullptr; } + template + inline ComPtr(ComPtr &&c) noexcept : ptr(c.Detach()) + { + } inline ~ComPtr() { Kill(); } inline void Clear() @@ -91,6 +95,14 @@ public: return *this; } + template inline ComPtr &operator=(ComPtr &&c) noexcept + { + Kill(); + ptr = c.Detach(); + + return *this; + } + inline T *Detach() { T *out = ptr;