From e3eea3a935ec21f93a3817a85a69636db7ebdbaf Mon Sep 17 00:00:00 2001
From: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Date: Wed, 22 Aug 2012 14:31:04 +0200
Subject: [PATCH] factor out evaluateConfigFeatures()

Change-Id: Ida8e871f8a1bcb9598dc83874ed2db17083a7fd5
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
---
 src/shared/proparser/qmakeevaluator.cpp | 41 ++++++++++++++-----------
 src/shared/proparser/qmakeevaluator.h   |  1 +
 2 files changed, 24 insertions(+), 18 deletions(-)

diff --git a/src/shared/proparser/qmakeevaluator.cpp b/src/shared/proparser/qmakeevaluator.cpp
index fee5b3383df..b319606af24 100644
--- a/src/shared/proparser/qmakeevaluator.cpp
+++ b/src/shared/proparser/qmakeevaluator.cpp
@@ -1211,6 +1211,28 @@ void QMakeEvaluator::evaluateCommand(const QString &cmds, const QString &where)
     }
 }
 
+void QMakeEvaluator::evaluateConfigFeatures()
+{
+    QSet<QString> processed;
+    forever {
+        bool finished = true;
+        ProStringList configs = values(statics.strCONFIG);
+        for (int i = configs.size() - 1; i >= 0; --i) {
+            QString config = configs.at(i).toQString(m_tmp1).toLower();
+            if (!processed.contains(config)) {
+                config.detach();
+                processed.insert(config);
+                if (evaluateFeatureFile(config, true)) {
+                    finished = false;
+                    break;
+                }
+            }
+        }
+        if (finished)
+            break;
+    }
+}
+
 QMakeEvaluator::VisitReturn QMakeEvaluator::visitProFile(
         ProFile *pro, QMakeHandler::EvalFileType type, LoadFlags flags)
 {
@@ -1319,24 +1341,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::visitProFile(
 
         evaluateFeatureFile(QLatin1String("default_post.prf"));
 
-        QSet<QString> processed;
-        forever {
-            bool finished = true;
-            ProStringList configs = values(statics.strCONFIG);
-            for (int i = configs.size() - 1; i >= 0; --i) {
-                QString config = configs.at(i).toQString(m_tmp1).toLower();
-                if (!processed.contains(config)) {
-                    config.detach();
-                    processed.insert(config);
-                    if (evaluateFeatureFile(config, true)) {
-                        finished = false;
-                        break;
-                    }
-                }
-            }
-            if (finished)
-                break;
-        }
+        evaluateConfigFeatures();
     }
     m_profileStack.pop();
     valuesRef(ProKey("PWD")) = ProStringList(ProString(currentDirectory()));
diff --git a/src/shared/proparser/qmakeevaluator.h b/src/shared/proparser/qmakeevaluator.h
index b8d0bf46156..ec7bf4f562d 100644
--- a/src/shared/proparser/qmakeevaluator.h
+++ b/src/shared/proparser/qmakeevaluator.h
@@ -159,6 +159,7 @@ public:
     bool evaluateFileInto(const QString &fileName,
                           ProValueMap *values, // output-only
                           LoadFlags flags);
+    void evaluateConfigFeatures();
     void message(int type, const QString &msg) const;
     void evalError(const QString &msg) const
             { message(QMakeHandler::EvalError, msg); }
-- 
GitLab