From a2d858febf74d1289774fa6f59d32cc4c7e60e5b Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Mon, 1 Jul 2024 11:33:53 +0200 Subject: [PATCH] QtDBus: don't detach in registerComplexDBusType()::Hash static destruction The old code's use of ranged-for loop over a QHash would trigger said QHash to detach. We don't require a detach here, so avoid this unnecessary program shutdown slowdown using std::as_const(). Possibly-related: remove the pointless std::move() around QMetaType passing - QMetaType is trivially copyable. Amends 1697fbdf05ff643d617a9ba1614454926e86a3d9. Pick-to: 6.7 6.5 Change-Id: I7b8d404e93ae4dde71a30e22e9e2f56a4b5354fb Reviewed-by: Thiago Macieira (cherry picked from commit 167382beaad38fd7cbd9764abe76055544e61c20) Reviewed-by: Qt Cherry-pick Bot --- src/dbus/qdbusmetaobject.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dbus/qdbusmetaobject.cpp b/src/dbus/qdbusmetaobject.cpp index 543b185df9e..2647f6a0db4 100644 --- a/src/dbus/qdbusmetaobject.cpp +++ b/src/dbus/qdbusmetaobject.cpp @@ -116,8 +116,8 @@ static int registerComplexDBusType(const QByteArray &typeName) { ~Hash() { - for (QMetaType entry : *this) - QMetaType::unregisterMetaType(std::move(entry)); + for (QMetaType entry : std::as_const(*this)) + QMetaType::unregisterMetaType(entry); } } hash; QMutexLocker lock(&mutex);