diff options
author | Jiang Jiang <jiang.jiang@nokia.com> | 2012-07-10 10:32:03 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-11 14:52:17 +0200 |
commit | fe40b8f4ad5a44ddaa6e2e6c4fc1f6745820a228 (patch) | |
tree | 8c69dc35f50bd66fc6072f25e55a790575b577db | |
parent | e8aa56b74b1a63a185ef71b9818ba8b0f9fe9040 (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>
-rw-r--r-- | src/network/bearer/qnetworkconfigmanager_p.cpp | 5 |
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; |