diff options
author | Sergey Morozov <dev@gres.biz> | 2018-09-22 14:22:03 +0300 |
---|---|---|
committer | Sergey Morozov <dev@gres.biz> | 2018-09-30 07:38:40 +0000 |
commit | f01ee04f4fa1334ca6e2dcc6c31289676f98d1b1 (patch) | |
tree | 29dff91cf47e81cb518ac4ca31f964751b7e7261 /src/plugins/cppcheck | |
parent | 546956a302d7a91006460b55e699e1b832b02a3d (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.cpp | 10 | ||||
-rw-r--r-- | src/plugins/cppcheck/cppcheckrunner.h | 2 | ||||
-rw-r--r-- | src/plugins/cppcheck/cppchecktool.cpp | 2 |
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 ¤tFiles() 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() |