From d835e1d14e426ea73a66a0f8e225898598581f4a Mon Sep 17 00:00:00 2001 From: flow Date: Thu, 4 Aug 2022 17:09:32 -0300 Subject: [PATCH] refactor: simplify smart pointers more Signed-off-by: flow --- launcher/QObjectPtr.h | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/launcher/QObjectPtr.h b/launcher/QObjectPtr.h index 7c453adb6..b1ef1c8dd 100644 --- a/launcher/QObjectPtr.h +++ b/launcher/QObjectPtr.h @@ -2,27 +2,16 @@ #include #include + #include #include -namespace details { -[[maybe_unused]] static void do_delete_later(QObject* obj) -{ - if (obj) - obj->deleteLater(); -} -struct DeleteQObjectLater { - void operator()(QObject* obj) const { do_delete_later(obj); } -}; - -} // namespace details - /** * A unique pointer class with unique pointer semantics intended for derivates of QObject * Calls deleteLater() instead of destroying the contained object immediately */ template -using unique_qobject_ptr = std::unique_ptr; +using unique_qobject_ptr = QScopedPointer; /** * A shared pointer class with shared pointer semantics intended for derivates of QObject @@ -32,8 +21,8 @@ template class shared_qobject_ptr : public QSharedPointer { public: constexpr shared_qobject_ptr() : QSharedPointer() {} - constexpr shared_qobject_ptr(T* ptr) : QSharedPointer(ptr, details::do_delete_later) {} - constexpr shared_qobject_ptr(std::nullptr_t null_ptr) : QSharedPointer(null_ptr, details::do_delete_later) {} + constexpr shared_qobject_ptr(T* ptr) : QSharedPointer(ptr, &QObject::deleteLater) {} + constexpr shared_qobject_ptr(std::nullptr_t null_ptr) : QSharedPointer(null_ptr, &QObject::deleteLater) {} template constexpr shared_qobject_ptr(const shared_qobject_ptr& other) : QSharedPointer(other)