aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cppcheck
diff options
context:
space:
mode:
authorSergey Morozov <dev@gres.biz>2018-09-22 14:22:03 +0300
committerSergey Morozov <dev@gres.biz>2018-09-30 07:38:40 +0000
commitf01ee04f4fa1334ca6e2dcc6c31289676f98d1b1 (patch)
tree29dff91cf47e81cb518ac4ca31f964751b7e7261 /src/plugins/cppcheck
parent546956a302d7a91006460b55e699e1b832b02a3d (diff)
Cppcheck: Kill current check process only when needed
Kill only if it processes specified files Change-Id: I5dee99ec8aeaf3bf4d9dbf6aad195f54176170a2 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/cppcheck')
-rw-r--r--src/plugins/cppcheck/cppcheckrunner.cpp10
-rw-r--r--src/plugins/cppcheck/cppcheckrunner.h2
-rw-r--r--src/plugins/cppcheck/cppchecktool.cpp2
3 files changed, 8 insertions, 6 deletions
diff --git a/src/plugins/cppcheck/cppcheckrunner.cpp b/src/plugins/cppcheck/cppcheckrunner.cpp
index b1d5f1b6c69..c7472588386 100644
--- a/src/plugins/cppcheck/cppcheckrunner.cpp
+++ b/src/plugins/cppcheck/cppcheckrunner.cpp
@@ -87,17 +87,19 @@ void CppcheckRunner::addToQueue(const Utils::FileNameList &files,
}
if (m_isRunning) {
- if (existing == m_currentFiles)
- m_process->kill(); // Further processing in handleFinished
+ stop(existing);
return;
}
m_queueTimer.start();
}
-void CppcheckRunner::stop()
+void CppcheckRunner::stop(const Utils::FileNameList &files)
{
- if (m_isRunning)
+ if (!m_isRunning)
+ return;
+
+ if (files.isEmpty() || m_currentFiles == files)
m_process->kill();
}
diff --git a/src/plugins/cppcheck/cppcheckrunner.h b/src/plugins/cppcheck/cppcheckrunner.h
index 760105c462c..733ef07d6d8 100644
--- a/src/plugins/cppcheck/cppcheckrunner.h
+++ b/src/plugins/cppcheck/cppcheckrunner.h
@@ -51,7 +51,7 @@ public:
void addToQueue(const Utils::FileNameList &files,
const QString &additionalArguments = {});
void removeFromQueue(const Utils::FileNameList &files);
- void stop();
+ void stop(const Utils::FileNameList &files = {});
const Utils::FileNameList &currentFiles() const;
QString currentCommand() const;
diff --git a/src/plugins/cppcheck/cppchecktool.cpp b/src/plugins/cppcheck/cppchecktool.cpp
index cbf53aad796..28111cd3f6e 100644
--- a/src/plugins/cppcheck/cppchecktool.cpp
+++ b/src/plugins/cppcheck/cppchecktool.cpp
@@ -229,7 +229,7 @@ void CppcheckTool::addToQueue(const Utils::FileNameList &files, CppTools::Projec
void CppcheckTool::stop(const Utils::FileNameList &files)
{
m_runner->removeFromQueue(files);
- m_runner->stop();
+ m_runner->stop(files);
}
void CppcheckTool::startParsing()