From a22ae96ab9634cd39a6f88bbc8cc2c0506800b34 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Mon, 1 Jul 2024 11:03:18 +0200 Subject: [PATCH] QDBusSignature: de-inline the default ctor It used to merely default-construct the QString member (which is just zero-initialization), but since we discovered that we need to set m_signature to empty instead of null, it's doing too much for inline code (temporary QString (atomics), compile-time), so de-inline. Amends ed6d1fa71a79a70b7e6a20fbbc737ed9f6c287b1, but since this is adding a new symbol on non-Windows platforms, only pick to unreleased branches. Change-Id: I610dad86ac4a080f5a45495ebc9536aa1d0bcbea Reviewed-by: Thiago Macieira (cherry picked from commit 271876bbcecedccf66179bc46c26e78d04732d6c) Reviewed-by: Qt Cherry-pick Bot --- src/dbus/qdbusextratypes.cpp | 4 ++++ src/dbus/qdbusextratypes.h | 4 +--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/dbus/qdbusextratypes.cpp b/src/dbus/qdbusextratypes.cpp index 355a764e9cd..1f976939668 100644 --- a/src/dbus/qdbusextratypes.cpp +++ b/src/dbus/qdbusextratypes.cpp @@ -34,6 +34,10 @@ void QDBusObjectPath::doCheck() } } +QDBusSignature::QDBusSignature() noexcept + : m_signature(QLatin1StringView("")) // mark non-null (empty signatures are valid) +{} + void QDBusSignature::doCheck() { if (!QDBusUtil::isValidSignature(m_signature)) { diff --git a/src/dbus/qdbusextratypes.h b/src/dbus/qdbusextratypes.h index cb63df4f932..3b44bfc2175 100644 --- a/src/dbus/qdbusextratypes.h +++ b/src/dbus/qdbusextratypes.h @@ -77,9 +77,7 @@ class Q_DBUS_EXPORT QDBusSignature { QString m_signature; public: - QDBusSignature() noexcept - : m_signature(QLatin1StringView("")) // mark non-null (empty signatures are valid) - {} + QDBusSignature() noexcept; // compiler-generated copy/move constructor/assignment operators are ok! // compiler-generated destructor is ok!