diff options
author | Anton Kudryavtsev <a.kudryavtsev@netris.ru> | 2016-01-15 15:23:25 +0300 |
---|---|---|
committer | Anton Kudryavtsev <a.kudryavtsev@netris.ru> | 2016-01-15 14:11:38 +0000 |
commit | 201f84f204dc920023ceb64a2aab624f6ab481c8 (patch) | |
tree | ad37de58347912a69a3f5bcca067fb61f894ae3f /tools/qmlplugindump/main.cpp | |
parent | 6b4710669a2fbeb2c5a3f703e7597cfd1e80c709 (diff) |
Tools: fix expensive iteration over QHash::keys()
Change-Id: I902bafdbc2ddfceeacfc9ef274513a2b0a23aed7
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
Diffstat (limited to 'tools/qmlplugindump/main.cpp')
-rw-r--r-- | tools/qmlplugindump/main.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/tools/qmlplugindump/main.cpp b/tools/qmlplugindump/main.cpp index aa2e8755e6..a696e0b5bc 100644 --- a/tools/qmlplugindump/main.cpp +++ b/tools/qmlplugindump/main.cpp @@ -241,10 +241,10 @@ QSet<const QMetaObject *> collectReachableMetaObjects(QQmlEngine *engine, // For each export of a base object there can be a single extension object overriding it. // Example: QDeclarativeGraphicsWidget overrides the QtQuick/QGraphicsWidget export // of QGraphicsWidget. - foreach (const QByteArray &baseCpp, extensions.keys()) { - QSet<const QQmlType *> baseExports = qmlTypesByCppName.value(baseCpp); + for (auto it = extensions.cbegin(), end = extensions.cend(); it != end; ++it) { + QSet<const QQmlType *> baseExports = qmlTypesByCppName.value(it.key()); - const QSet<QByteArray> extensionCppNames = extensions.value(baseCpp); + const QSet<QByteArray> extensionCppNames = it.value(); foreach (const QByteArray &extensionCppName, extensionCppNames) { const QSet<const QQmlType *> extensionExports = qmlTypesByCppName.value(extensionCppName); @@ -266,7 +266,7 @@ QSet<const QMetaObject *> collectReachableMetaObjects(QQmlEngine *engine, } baseExports = newBaseExports; } - qmlTypesByCppName[baseCpp] = baseExports; + qmlTypesByCppName[it.key()] = baseExports; } if (creatable) { |