From 662db241ddedff5e5f21c240375a041233fbbc7d Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 22 Dec 2022 16:19:13 +0100 Subject: [PATCH] runOnAndroidMainThread(): optimize shared pointer use - port from QSharedPointer to std::shared_ptr (one instead of two atomic ops per shared-pointer copy) - port to std::make_shared (one instead of two memory allocations for shared-pointer + payload creation) Change-Id: Idecef5732d181a63e6936f54204eeb7ecbdc4a0f Reviewed-by: Assam Boudjelthia (cherry picked from commit dbcbadb7ac6620fabadd173b54d292bbadcb5b58) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/platform/android/qandroidnativeinterface.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/corelib/platform/android/qandroidnativeinterface.cpp b/src/corelib/platform/android/qandroidnativeinterface.cpp index b28cc771d8b..8bd79494e2f 100644 --- a/src/corelib/platform/android/qandroidnativeinterface.cpp +++ b/src/corelib/platform/android/qandroidnativeinterface.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #endif QT_BEGIN_NAMESPACE @@ -21,7 +22,7 @@ static const char qtNativeClassName[] = "org/qtproject/qt/android/QtNative"; struct PendingRunnable { std::function function; - QSharedPointer> promise; + std::shared_ptr> promise; }; using PendingRunnables = std::deque; @@ -161,7 +162,7 @@ QFuture QNativeInterface::QAndroidApplication::runOnAndroidMainThread( const std::function &runnable, const QDeadlineTimer timeout) { - QSharedPointer> promise(new QPromise()); + auto promise = std::make_shared>(); QFuture future = promise->future(); promise->start();