From 9e6f74937548e5d935087fddd21e0a213271a09f Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 20 Mar 2025 11:36:02 +0100 Subject: [PATCH] QDBusListener: remove ChangeSignal's defaut ctor Coverity complained that the default ctor didn't initialize its two members. This is true, and it even remains true if the user of the type explicitly asks for value-initialization (ChangeSignal s = {}) as opposed to default-construction (ChangeSignal s;). Remove the default ctor as the minimally-possible fix. It was only needed because of a call to QFlatMap::value(1-arg), which, incidentally, constitutes a double-lookup, because it is following a contains() call. Replacing that combo with find() and it.value() avoids the double-lookup and removes the need for the type to be default-constructible. Amends 0328e4297e339de8a2acd84979c667936f6fadf8. Coverity picked this up as a new issue following 53fb13456fffe8bfd192f9197c6d1703854b49a2, so there probably is another CID for this for the same code in the old location, but my Coverity search-foo is insufficient to find the corresponding CID, without undue effort, so I didn't try. Manual conflict resolution for 6.9: - tracked contents from qdbuslistener* back into qgenericunixthemes.cpp, whence 53fb13456fffe8bfd192f9197c6d1703854b49a2 moved them. Coverity-Id: 478089 Pick-to: 6.5 Change-Id: I912bf2af343b98fe62faf2d4bf8a6d1f385593e8 Reviewed-by: Giuseppe D'Angelo Reviewed-by: Axel Spoerl (cherry picked from commit d624454586bc040c381091f45ca43dcb43f7112c) (cherry picked from commit 3383817a2d5c120c935ef2a50a226acffa4d32b2) Reviewed-by: Qt Cherry-pick Bot --- src/gui/platform/unix/qgenericunixthemes.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/platform/unix/qgenericunixthemes.cpp b/src/gui/platform/unix/qgenericunixthemes.cpp index 4da0b47a4ab..3b81a6ce1a9 100644 --- a/src/gui/platform/unix/qgenericunixthemes.cpp +++ b/src/gui/platform/unix/qgenericunixthemes.cpp @@ -178,7 +178,6 @@ private: Provider provider; Setting setting; ChangeSignal(Provider p, Setting s) : provider(p), setting(s) {} - ChangeSignal() {} }; QFlatMap m_signalMap; @@ -387,8 +386,9 @@ std::optional { const DBusKey dkey(location, key); std::optional ret; - if (m_signalMap.contains(dkey)) - ret.emplace(m_signalMap.value(dkey)); + const auto it = m_signalMap.find(dkey); + if (it != m_signalMap.cend()) + ret.emplace(it.value()); return ret; }