From e227a4bfbd050dae7be1787ba547de9163155441 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Mon, 13 May 2024 16:29:56 +0200 Subject: [PATCH] QMacAutoReleasePool: hold root-level object in optional<>, not QScopedPointer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The payload object is fully defined in the header file, so there's no benefit in avoiding in-size use, which saves one memory allocation. Amends 4a5a4245b7f24b53847e96f1eee5445bdae537e6. Change-Id: Iece2aed22ce525da940bd493b7009baeec6d06ba Reviewed-by: Tor Arne Vestbø --- src/corelib/kernel/qcore_mac.mm | 2 +- src/corelib/kernel/qcore_mac_p.h | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/corelib/kernel/qcore_mac.mm b/src/corelib/kernel/qcore_mac.mm index 54c4373aeda..00b0d078d7d 100644 --- a/src/corelib/kernel/qcore_mac.mm +++ b/src/corelib/kernel/qcore_mac.mm @@ -541,7 +541,7 @@ QMacRootLevelAutoReleasePool::QMacRootLevelAutoReleasePool() if (qEnvironmentVariableIsSet(ROOT_LEVEL_POOL_DISABLE_SWITCH)) return; - pool.reset(new QMacAutoReleasePool); + pool.emplace(); [[[ROOT_LEVEL_POOL_MARKER alloc] init] autorelease]; diff --git a/src/corelib/kernel/qcore_mac_p.h b/src/corelib/kernel/qcore_mac_p.h index e63c3208057..5ecf8072f46 100644 --- a/src/corelib/kernel/qcore_mac_p.h +++ b/src/corelib/kernel/qcore_mac_p.h @@ -19,6 +19,8 @@ #include +#include + #ifdef Q_OS_MACOS #include struct mach_header; @@ -48,7 +50,6 @@ kern_return_t IOObjectRelease(io_object_t object); #endif #include "qstring.h" -#include "qscopedpointer.h" #include "qpair.h" #if defined( __OBJC__) && defined(QT_NAMESPACE) @@ -129,7 +130,7 @@ public: Q_NODISCARD_CTOR QMacRootLevelAutoReleasePool(); ~QMacRootLevelAutoReleasePool(); private: - QScopedPointer pool; + std::optional pool = std::nullopt; }; #endif