diff options
| author | Carl Hetherington <cth@carlh.net> | 2025-02-09 02:06:04 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2025-02-09 17:29:16 +0100 |
| commit | d0308d53dd9f4d036d8c5fe8023920fcdfd43f39 (patch) | |
| tree | 5b37c1db5dc50e541a542663390061f743fe815a /src/wx/wx_ptr.h | |
| parent | 8d0d9866ae3e0395d899705e27b3806a5de7ef0e (diff) | |
Remove unnecessary wx_ptr
It was only ever used for wxDialog subclasses, which can be
stack-allocated.
Diffstat (limited to 'src/wx/wx_ptr.h')
| -rw-r--r-- | src/wx/wx_ptr.h | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/src/wx/wx_ptr.h b/src/wx/wx_ptr.h deleted file mode 100644 index fcca8b18b..000000000 --- a/src/wx/wx_ptr.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - Copyright (C) 2023 Carl Hetherington <cth@carlh.net> - - This file is part of DCP-o-matic. - - DCP-o-matic is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - DCP-o-matic is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. - -*/ - - -#ifndef DCPOMATIC_WX_PTR_H -#define DCPOMATIC_WX_PTR_H - - -#include "lib/dcpomatic_assert.h" -#include <utility> - - -template <class T> -class wx_ptr -{ -public: - wx_ptr() {} - - explicit wx_ptr(T* wx) - : _wx(wx) - {} - - wx_ptr(wx_ptr&) = delete; - wx_ptr& operator=(wx_ptr&) = delete; - - wx_ptr(wx_ptr&& other) - { - _wx = other._wx; - other._wx = nullptr; - } - - wx_ptr& operator=(wx_ptr&& other) - { - if (this != &other) { - _wx = other._wx; - other._wx = nullptr; - } - return *this; - } - - ~wx_ptr() - { - if (_wx) { - _wx->Destroy(); - } - } - - wx_ptr& operator=(T* ptr) - { - if (_wx) { - _wx->Destroy(); - } - _wx = ptr; - return *this; - } - - T* operator->() - { - DCPOMATIC_ASSERT(_wx); - return _wx; - } - - operator bool() const - { - return _wx != nullptr; - } - - void reset() - { - if (_wx) { - _wx->Destroy(); - _wx = nullptr; - } - } - - template <typename... Args> - void reset(Args&&... args) - { - if (_wx) { - _wx->Destroy(); - _wx = nullptr; - } - _wx = new T(std::forward<Args>(args)...); - } - -private: - T* _wx = nullptr; -}; - - - -template <class T, typename... Args> -wx_ptr<T> -make_wx(Args... args) -{ - return wx_ptr<T>(new T(std::forward<Args>(args)...)); -} - - -#endif |
