summaryrefslogtreecommitdiffstats
path: root/src/network/bearer
diff options
context:
space:
mode:
authorAnton Kudryavtsev <a.kudryavtsev@netris.ru>2016-03-03 15:55:47 +0300
committerAnton Kudryavtsev <a.kudryavtsev@netris.ru>2016-03-03 20:21:17 +0000
commit089ed1525e80b804a1745484995582e29d08129e (patch)
tree3be2cb9f5894cc7a45e9129e41aae791e7e45a83 /src/network/bearer
parent37d89fd8fb2c6b41a9dc9bea2f021803e5070866 (diff)
QtNetwork: optimize container usage
Don't perform lookup twice. Just cache iterator or position. Change-Id: I454fd292614dee62167ff248fc3ddec0f79435b0 Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Diffstat (limited to 'src/network/bearer')
-rw-r--r--src/network/bearer/qnetworkconfigmanager_p.cpp25
-rw-r--r--src/network/bearer/qsharednetworksession.cpp5
2 files changed, 17 insertions, 13 deletions
diff --git a/src/network/bearer/qnetworkconfigmanager_p.cpp b/src/network/bearer/qnetworkconfigmanager_p.cpp
index 3101a98165..232875f43c 100644
--- a/src/network/bearer/qnetworkconfigmanager_p.cpp
+++ b/src/network/bearer/qnetworkconfigmanager_p.cpp
@@ -52,6 +52,8 @@
#include <QtCore/qbytearray.h>
#include <QtCore/qglobal.h>
+#include <utility>
+
#ifndef QT_NO_BEARERMANAGEMENT
@@ -263,17 +265,18 @@ QNetworkConfiguration QNetworkConfigurationManagerPrivate::configurationFromIden
foreach (QBearerEngine *engine, sessionEngines) {
QMutexLocker locker(&engine->mutex);
-
- if (engine->accessPointConfigurations.contains(identifier))
- item.d = engine->accessPointConfigurations[identifier];
- else if (engine->snapConfigurations.contains(identifier))
- item.d = engine->snapConfigurations[identifier];
- else if (engine->userChoiceConfigurations.contains(identifier))
- item.d = engine->userChoiceConfigurations[identifier];
- else
- continue;
-
- return item;
+ if (auto ptr = engine->accessPointConfigurations.value(identifier)) {
+ item.d = std::move(ptr);
+ break;
+ }
+ if (auto ptr = engine->snapConfigurations.value(identifier)) {
+ item.d = std::move(ptr);
+ break;
+ }
+ if (auto ptr = engine->userChoiceConfigurations.value(identifier)) {
+ item.d = std::move(ptr);
+ break;
+ }
}
return item;
diff --git a/src/network/bearer/qsharednetworksession.cpp b/src/network/bearer/qsharednetworksession.cpp
index e04c8cc953..fc01acb8b4 100644
--- a/src/network/bearer/qsharednetworksession.cpp
+++ b/src/network/bearer/qsharednetworksession.cpp
@@ -65,9 +65,10 @@ static void doDeleteLater(QObject* obj)
QSharedPointer<QNetworkSession> QSharedNetworkSessionManager::getSession(const QNetworkConfiguration &config)
{
QSharedNetworkSessionManager *m(sharedNetworkSessionManager());
+ const auto it = m->sessions.constFind(config);
//if already have a session, return it
- if (m->sessions.contains(config)) {
- QSharedPointer<QNetworkSession> p = m->sessions.value(config).toStrongRef();
+ if (it != m->sessions.cend()) {
+ QSharedPointer<QNetworkSession> p = it.value().toStrongRef();
if (!p.isNull())
return p;
}