diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-09-12 10:47:02 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-09-12 11:24:12 +0000 |
commit | 248ab8c8740de3e0adb203dd207862b35cfc69fe (patch) | |
tree | beb15a490d986a515cae72c34e034267b21bc03d /sources/pyside2/libpyside/signalmanager.cpp.in | |
parent | 0187d2b17dd5d35d645b70a2cf08c7100c0d6a14 (diff) |
libpyside: Fix contains()/value() antipattern
Use iterators instead, avoiding repeated lookups of hashes and maps.
Change-Id: I3b430bdf0ceef1980baeca45849880d35538e89b
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/pyside2/libpyside/signalmanager.cpp.in')
-rw-r--r-- | sources/pyside2/libpyside/signalmanager.cpp.in | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sources/pyside2/libpyside/signalmanager.cpp.in b/sources/pyside2/libpyside/signalmanager.cpp.in index 6ed2c3a97..9b5c5eb9a 100644 --- a/sources/pyside2/libpyside/signalmanager.cpp.in +++ b/sources/pyside2/libpyside/signalmanager.cpp.in @@ -338,14 +338,16 @@ QObject* SignalManager::globalReceiver(QObject *sender, PyObject *callback) SharedMap globalReceivers = m_d->m_globalReceivers; QByteArray hash = GlobalReceiverV2::hash(callback); GlobalReceiverV2* gr = 0; - if (!globalReceivers->contains(hash)) { - gr = (*globalReceivers)[hash] = new GlobalReceiverV2(callback, globalReceivers); + auto it = globalReceivers->find(hash); + if (it == globalReceivers->end()) { + gr = new GlobalReceiverV2(callback, globalReceivers); + globalReceivers->insert(hash, gr); if (sender) { gr->incRef(sender); // create a link reference gr->decRef(); // remove extra reference } } else { - gr = (*globalReceivers)[hash]; + gr = it.value(); if (sender) gr->incRef(sender); } |