From fb9ded85d70815878fa08ab5cd0e399153db293d Mon Sep 17 00:00:00 2001
From: Friedemann Kleint <Friedemann.Kleint@digia.com>
Date: Thu, 14 Mar 2013 14:18:02 +0100
Subject: [PATCH] Fix Krazy warnings about values or keys iteration in
 Editor/C++.

Change-Id: I46ff779bae6d7bba105bc2019228ba38b95dc352
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
---
 .../snippets/snippetscollection.cpp           |  6 +++++-
 .../cplusplus-update-frontend.cpp             | 19 ++++++++++++-------
 2 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/src/plugins/texteditor/snippets/snippetscollection.cpp b/src/plugins/texteditor/snippets/snippetscollection.cpp
index 92a3686b586..aebb2aaf644 100644
--- a/src/plugins/texteditor/snippets/snippetscollection.cpp
+++ b/src/plugins/texteditor/snippets/snippetscollection.cpp
@@ -319,11 +319,15 @@ bool SnippetsCollection::synchronize(QString *errorString)
     }
     Utils::FileSaver saver(m_userSnippetsPath + m_userSnippetsFile);
     if (!saver.hasError()) {
+        typedef QHash<QString, int>::ConstIterator GroupIndexByIdConstIt;
+
         QXmlStreamWriter writer(saver.file());
         writer.setAutoFormatting(true);
         writer.writeStartDocument();
         writer.writeStartElement(kSnippets);
-        foreach (const QString &groupId, m_groupIndexById.keys()) {
+        const GroupIndexByIdConstIt cend = m_groupIndexById.constEnd();
+        for (GroupIndexByIdConstIt it = m_groupIndexById.constBegin(); it != cend; ++it ) {
+            const QString &groupId = it.key();
             const int size = m_snippets.at(groupIndex(groupId)).size();
             for (int i = 0; i < size; ++i) {
                 const Snippet &current = snippet(i, groupId);
diff --git a/src/tools/cplusplus-update-frontend/cplusplus-update-frontend.cpp b/src/tools/cplusplus-update-frontend/cplusplus-update-frontend.cpp
index 5992cab2eb4..844082a07d3 100644
--- a/src/tools/cplusplus-update-frontend/cplusplus-update-frontend.cpp
+++ b/src/tools/cplusplus-update-frontend/cplusplus-update-frontend.cpp
@@ -1064,6 +1064,9 @@ void generateLastToken(QTextStream &os, const QString &className, const QStringL
 
 void generateAST_cpp(const Snapshot &snapshot, const QDir &cplusplusDir)
 {
+    typedef QMap<QString, ClassSpecifierAST *> StringClassSpecifierASTMap;
+    typedef StringClassSpecifierASTMap::ConstIterator StringClassSpecifierASTMapConstIt;
+
     QFileInfo fileAST_cpp(cplusplusDir, QLatin1String("AST.cpp"));
     Q_ASSERT(fileAST_cpp.exists());
 
@@ -1085,8 +1088,8 @@ void generateAST_cpp(const Snapshot &snapshot, const QDir &cplusplusDir)
     AST_cpp_document->check();
 
     Overview oo;
-    QMap<QString, ClassSpecifierAST *> classesNeedingFirstToken;
-    QMap<QString, ClassSpecifierAST *> classesNeedingLastToken;
+    StringClassSpecifierASTMap classesNeedingFirstToken;
+    StringClassSpecifierASTMap classesNeedingLastToken;
 
     // find all classes with method declarations for firstToken/lastToken
     foreach (ClassSpecifierAST *classAST, astNodes.deriveds) {
@@ -1206,8 +1209,10 @@ void generateAST_cpp(const Snapshot &snapshot, const QDir &cplusplusDir)
 
     QString newMethods;
     QTextStream os(&newMethods);
-    foreach (const QString &className, classesNeedingFirstToken.keys()) {
-        const QStringList fields = collectFieldNames(classesNeedingFirstToken.value(className), true);
+    const StringClassSpecifierASTMapConstIt cfend = classesNeedingFirstToken.constEnd();
+    for (StringClassSpecifierASTMapConstIt it = classesNeedingFirstToken.constBegin(); it != cfend; ++it) {
+        const QString &className = it.key();
+        const QStringList fields = collectFieldNames(it.value(), true);
         os << "/** \\generated */" << endl;
         generateFirstToken(os, className, fields);
         if (ClassSpecifierAST *classAST = classesNeedingLastToken.value(className, 0)) {
@@ -1217,10 +1222,10 @@ void generateAST_cpp(const Snapshot &snapshot, const QDir &cplusplusDir)
             classesNeedingLastToken.remove(className);
         }
     }
-    foreach (const QString &className, classesNeedingLastToken.keys()) {
-        const QStringList fields = collectFieldNames(classesNeedingLastToken.value(className), true);
+    const StringClassSpecifierASTMapConstIt clend = classesNeedingLastToken.constEnd();
+    for (StringClassSpecifierASTMapConstIt it = classesNeedingLastToken.constBegin(); it != clend; ++it) {
         os << "/** \\generated */" << endl;
-        generateLastToken(os, className, fields);
+        generateLastToken(os, it.key(), collectFieldNames(it.value(), true));
     }
     tc.setPosition(documentEnd);
     tc.insertText(newMethods);
-- 
GitLab