summaryrefslogtreecommitdiffstats
path: root/src/network/bearer
diff options
context:
space:
mode:
authorJiang Jiang <jiang.jiang@nokia.com>2012-07-10 10:32:03 +0200
committerQt by Nokia <qt-info@nokia.com>2012-07-11 14:52:17 +0200
commitfe40b8f4ad5a44ddaa6e2e6c4fc1f6745820a228 (patch)
tree8c69dc35f50bd66fc6072f25e55a790575b577db /src/network/bearer
parente8aa56b74b1a63a185ef71b9818ba8b0f9fe9040 (diff)
Avoid loading multiple bearer plugins of the same key
There may be duplicated debug plugins, loading both will cause crash. Change-Id: Icc2a3643c318844bc7f2e149a6434e95de2449b2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/network/bearer')
-rw-r--r--src/network/bearer/qnetworkconfigmanager_p.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/network/bearer/qnetworkconfigmanager_p.cpp b/src/network/bearer/qnetworkconfigmanager_p.cpp
index ce04934865..e44b6897ed 100644
--- a/src/network/bearer/qnetworkconfigmanager_p.cpp
+++ b/src/network/bearer/qnetworkconfigmanager_p.cpp
@@ -383,8 +383,13 @@ void QNetworkConfigurationManagerPrivate::updateConfigurations()
QFactoryLoader *l = loader();
const PluginKeyMap keyMap = l->keyMap();
const PluginKeyMapConstIterator cend = keyMap.constEnd();
+ QStringList addedEngines;
for (PluginKeyMapConstIterator it = keyMap.constBegin(); it != cend; ++it) {
const QString &key = it.value();
+ if (addedEngines.contains(key))
+ continue;
+
+ addedEngines.append(key);
if (QBearerEngine *engine = qLoadPlugin<QBearerEngine, QBearerEnginePlugin>(l, key)) {
if (key == QLatin1String("generic"))
generic = engine;