diff options
author | Nikolai Kosjar <nikolai.kosjar@theqtcompany.com> | 2015-04-16 12:29:24 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@theqtcompany.com> | 2015-04-27 15:31:27 +0300 |
commit | fce0b8510615e599e8c2a24ec26206c2044049e8 (patch) | |
tree | 08be18bb5707880759ca4ed26e9f888998a43011 /plugins | |
parent | da3379549623e5ca7ce67724c661c9166fbcf445 (diff) | |
download | qt-creator-fce0b8510615e599e8c2a24ec26206c2044049e8.tar.gz |
Reduce calls to SessionManager:startupProject()
Might fix race conditions.
Change-Id: I70f7f28c88afe328468332898919b69fc432098b
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/clangstaticanalyzer/clangstaticanalyzerruncontrolfactory.cpp | 6 | ||||
-rw-r--r-- | plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp | 12 |
2 files changed, 11 insertions, 7 deletions
diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrolfactory.cpp b/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrolfactory.cpp index 9e8d69a4df..34fb3d4b5a 100644 --- a/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrolfactory.cpp +++ b/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrolfactory.cpp @@ -74,8 +74,12 @@ RunControl *ClangStaticAnalyzerRunControlFactory::create(RunConfiguration *runCo const ProjectInfo projectInfoBeforeBuild = m_tool->projectInfoBeforeBuild(); QTC_ASSERT(projectInfoBeforeBuild.isValid(), return 0); - Project *project = SessionManager::startupProject(); + QTC_ASSERT(runConfiguration, return 0); + Target * const target = runConfiguration->target(); + QTC_ASSERT(target, return 0); + Project * const project = target->project(); QTC_ASSERT(project, return 0); + const ProjectInfo projectInfoAfterBuild = CppModelManager::instance()->projectInfo(project); if (projectInfoAfterBuild.configurationOrFilesChanged(projectInfoBeforeBuild)) { diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp b/plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp index 4e98a28ddd..c7a44e46de 100644 --- a/plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp +++ b/plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp @@ -166,7 +166,7 @@ AnalyzerRunControl *ClangStaticAnalyzerTool::createRunControl( // Some projects provides CompilerCallData once a build is finished, // so pass on the updated Project Info unless no configuration change // (defines/includes/files) happened. - Project *project = SessionManager::startupProject(); + Project *project = runConfiguration->target()->project(); QTC_ASSERT(project, return 0); const CppTools::ProjectInfo projectInfoAfterBuild = CppTools::CppModelManager::instance()->projectInfo(project); @@ -185,9 +185,8 @@ AnalyzerRunControl *ClangStaticAnalyzerTool::createRunControl( return engine; } -static bool dontStartAfterHintForDebugMode() +static bool dontStartAfterHintForDebugMode(Project *project) { - const Project *project = SessionManager::startupProject(); BuildConfiguration::BuildType buildType = BuildConfiguration::Unknown; if (project) { if (const Target *target = project->activeTarget()) { @@ -222,13 +221,14 @@ void ClangStaticAnalyzerTool::startTool() { AnalyzerManager::showMode(); - if (dontStartAfterHintForDebugMode()) + Project *project = SessionManager::startupProject(); + QTC_ASSERT(project, return); + + if (dontStartAfterHintForDebugMode(project)) return; m_diagnosticModel->clear(); setBusyCursor(true); - Project *project = SessionManager::startupProject(); - QTC_ASSERT(project, return); m_diagnosticFilterModel->setProject(project); m_projectInfoBeforeBuild = CppTools::CppModelManager::instance()->projectInfo(project); QTC_ASSERT(m_projectInfoBeforeBuild.isValid(), return); |