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 <giuseppe.dangelo@kdab.com> Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> (cherry picked from commit d624454586bc040c381091f45ca43dcb43f7112c) (cherry picked from commit 3383817a2d5c120c935ef2a50a226acffa4d32b2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
c23790cacb
commit
9e6f749375
@ -178,7 +178,6 @@ private:
|
||||
Provider provider;
|
||||
Setting setting;
|
||||
ChangeSignal(Provider p, Setting s) : provider(p), setting(s) {}
|
||||
ChangeSignal() {}
|
||||
};
|
||||
|
||||
QFlatMap <DBusKey, ChangeSignal> m_signalMap;
|
||||
@ -387,8 +386,9 @@ std::optional<QGenericUnixThemeDBusListener::ChangeSignal>
|
||||
{
|
||||
const DBusKey dkey(location, key);
|
||||
std::optional<QGenericUnixThemeDBusListener::ChangeSignal> 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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user