aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2/libpyside/signalmanager.cpp.in
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2018-09-12 10:47:02 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2018-09-12 11:24:12 +0000
commit248ab8c8740de3e0adb203dd207862b35cfc69fe (patch)
treebeb15a490d986a515cae72c34e034267b21bc03d /sources/pyside2/libpyside/signalmanager.cpp.in
parent0187d2b17dd5d35d645b70a2cf08c7100c0d6a14 (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.in8
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);
}