diff options
author | Anton Kudryavtsev <a.kudryavtsev@netris.ru> | 2016-01-15 15:08:51 +0300 |
---|---|---|
committer | Anton Kudryavtsev <a.kudryavtsev@netris.ru> | 2016-01-18 07:57:45 +0000 |
commit | 1cbf064cdf6d24ddbb6bf30b08a88ec1bf03d3df (patch) | |
tree | 9008055bd3f0071ef947b24d76d5cd403d6cbccd /src/particles | |
parent | f4d1a471bb87dd4d4bb79b10e8dc434d707711bd (diff) |
Particles: fix expensive iteration over QHash::keys()
Change-Id: I02755796e3a5c5a3bb39e125a45d968a750e58e1
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Diffstat (limited to 'src/particles')
-rw-r--r-- | src/particles/qquickimageparticle.cpp | 7 | ||||
-rw-r--r-- | src/particles/qquickparticlesystem.cpp | 7 |
2 files changed, 9 insertions, 5 deletions
diff --git a/src/particles/qquickimageparticle.cpp b/src/particles/qquickimageparticle.cpp index d78a350306..4a79342a89 100644 --- a/src/particles/qquickimageparticle.cpp +++ b/src/particles/qquickimageparticle.cpp @@ -1497,9 +1497,10 @@ void QQuickImageParticle::prepareNextFrame(QSGNode **node) qDebug() << "QQuickImageParticle Feature level: " << perfLevel; qDebug() << "QQuickImageParticle Nodes: "; int count = 0; - foreach (int i, m_nodes.keys()) { - qDebug() << "Group " << i << " (" << m_system->groupData[i]->size() << " particles)"; - count += m_system->groupData[i]->size(); + for (auto it = m_nodes.keyBegin(), end = m_nodes.keyEnd(); it != end; ++it) { + qDebug() << "Group " << *it << " (" << m_system->groupData[*it]->size() + << " particles)"; + count += m_system->groupData[*it]->size(); } qDebug() << "Total count: " << count; } diff --git a/src/particles/qquickparticlesystem.cpp b/src/particles/qquickparticlesystem.cpp index 401d40e275..a91d0df614 100644 --- a/src/particles/qquickparticlesystem.cpp +++ b/src/particles/qquickparticlesystem.cpp @@ -995,9 +995,12 @@ void QQuickParticleSystem::createEngine() //### Solve the losses if size/states go down foreach (QQuickParticleGroup* group, m_groups) { bool exists = false; - foreach (const QString &name, groupIds.keys()) - if (group->name() == name) + for (auto it = groupIds.keyBegin(), end = groupIds.keyEnd(); it != end; ++it) { + if (group->name() == *it) { exists = true; + break; + } + } if (!exists) { int id = m_nextGroupId++; QQuickParticleGroupData* gd = new QQuickParticleGroupData(id, this); |