summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2015-07-09 15:28:09 +0200
committerNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2015-07-09 17:34:08 +0300
commitd8d5bff0711d0f76092d0f0520e00fc44227dd2f (patch)
tree08948caf146736ff80a1d702824fa6d5c5c706ed
parent19d470ac6a7285000a869b7068dad7e710633227 (diff)
downloadqt-creator-d8d5bff0711d0f76092d0f0520e00fc44227dd2f.tar.gz
Handle zero files to process
The analyzer was stuck in the running mode (busy cursor, progress bar) for zero files. Change-Id: I9e520dc65b6d027b82e6e31043c0401ebb9f3673 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
-rw-r--r--plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp39
-rw-r--r--plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.h2
2 files changed, 27 insertions, 14 deletions
diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp b/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp
index 2fa5542960..9ca6a1dfa1 100644
--- a/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp
+++ b/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp
@@ -349,6 +349,11 @@ bool ClangStaticAnalyzerRunControl::startEngine()
const int parallelRuns = ClangStaticAnalyzerSettings::instance()->simultaneousProcesses();
QTC_ASSERT(parallelRuns >= 1, emit finished(); return false);
m_success = true;
+
+ if (m_unitsToProcess.isEmpty()) {
+ finalize();
+ return false;
+ }
while (m_runners.size() < parallelRuns && !m_unitsToProcess.isEmpty())
analyzeNextFile();
return true;
@@ -376,20 +381,8 @@ void ClangStaticAnalyzerRunControl::analyzeNextFile()
return; // The previous call already reported that we are finished.
if (m_unitsToProcess.isEmpty()) {
- if (m_runners.size() == 0) {
- appendMessage(tr("Clang Static Analyzer finished: "
- "Processed %1 files successfully, %2 failed.")
- .arg(m_filesAnalyzed)
- .arg(m_filesNotAnalyzed)
- + QLatin1Char('\n'),
- Utils::NormalMessageFormat);
- if (m_filesAnalyzed == 0 && m_filesNotAnalyzed != 0) {
- AnalyzerUtils::logToIssuesPane(Task::Error,
- tr("Clang Static Analyzer: Failed to analyze any files."));
- }
- m_progress.reportFinished();
- emit finished();
- }
+ if (m_runners.isEmpty())
+ finalize();
return;
}
@@ -480,5 +473,23 @@ void ClangStaticAnalyzerRunControl::updateProgressValue()
m_progress.setProgressValue(m_initialFilesToProcessSize - m_unitsToProcess.size());
}
+void ClangStaticAnalyzerRunControl::finalize()
+{
+ appendMessage(tr("Clang Static Analyzer finished: "
+ "Processed %1 files successfully, %2 failed.")
+ .arg(m_filesAnalyzed)
+ .arg(m_filesNotAnalyzed)
+ + QLatin1Char('\n'),
+ Utils::NormalMessageFormat);
+
+ if (m_filesAnalyzed == 0 && m_filesNotAnalyzed != 0) {
+ AnalyzerUtils::logToIssuesPane(Task::Error,
+ tr("Clang Static Analyzer: Failed to analyze any files."));
+ }
+
+ m_progress.reportFinished();
+ emit finished();
+}
+
} // namespace Internal
} // namespace ClangStaticAnalyzer
diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.h b/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.h
index f9419e21c3..0bffb4d788 100644
--- a/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.h
+++ b/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.h
@@ -69,6 +69,8 @@ private:
void onProgressCanceled();
void updateProgressValue();
+ void finalize();
+
private:
const CppTools::ProjectInfo m_projectInfo;
const unsigned char m_wordWidth;