forked from qt-creator/qt-creator
Reduce calls to SessionManager:startupProject()
Might fix race conditions. Change-Id: I70f7f28c88afe328468332898919b69fc432098b Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
This commit is contained in:
@@ -74,8 +74,12 @@ RunControl *ClangStaticAnalyzerRunControlFactory::create(RunConfiguration *runCo
|
|||||||
const ProjectInfo projectInfoBeforeBuild = m_tool->projectInfoBeforeBuild();
|
const ProjectInfo projectInfoBeforeBuild = m_tool->projectInfoBeforeBuild();
|
||||||
QTC_ASSERT(projectInfoBeforeBuild.isValid(), return 0);
|
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);
|
QTC_ASSERT(project, return 0);
|
||||||
|
|
||||||
const ProjectInfo projectInfoAfterBuild = CppModelManager::instance()->projectInfo(project);
|
const ProjectInfo projectInfoAfterBuild = CppModelManager::instance()->projectInfo(project);
|
||||||
|
|
||||||
if (projectInfoAfterBuild.configurationOrFilesChanged(projectInfoBeforeBuild)) {
|
if (projectInfoAfterBuild.configurationOrFilesChanged(projectInfoBeforeBuild)) {
|
||||||
|
@@ -166,7 +166,7 @@ AnalyzerRunControl *ClangStaticAnalyzerTool::createRunControl(
|
|||||||
// Some projects provides CompilerCallData once a build is finished,
|
// Some projects provides CompilerCallData once a build is finished,
|
||||||
// so pass on the updated Project Info unless no configuration change
|
// so pass on the updated Project Info unless no configuration change
|
||||||
// (defines/includes/files) happened.
|
// (defines/includes/files) happened.
|
||||||
Project *project = SessionManager::startupProject();
|
Project *project = runConfiguration->target()->project();
|
||||||
QTC_ASSERT(project, return 0);
|
QTC_ASSERT(project, return 0);
|
||||||
const CppTools::ProjectInfo projectInfoAfterBuild
|
const CppTools::ProjectInfo projectInfoAfterBuild
|
||||||
= CppTools::CppModelManager::instance()->projectInfo(project);
|
= CppTools::CppModelManager::instance()->projectInfo(project);
|
||||||
@@ -185,9 +185,8 @@ AnalyzerRunControl *ClangStaticAnalyzerTool::createRunControl(
|
|||||||
return engine;
|
return engine;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool dontStartAfterHintForDebugMode()
|
static bool dontStartAfterHintForDebugMode(Project *project)
|
||||||
{
|
{
|
||||||
const Project *project = SessionManager::startupProject();
|
|
||||||
BuildConfiguration::BuildType buildType = BuildConfiguration::Unknown;
|
BuildConfiguration::BuildType buildType = BuildConfiguration::Unknown;
|
||||||
if (project) {
|
if (project) {
|
||||||
if (const Target *target = project->activeTarget()) {
|
if (const Target *target = project->activeTarget()) {
|
||||||
@@ -222,13 +221,14 @@ void ClangStaticAnalyzerTool::startTool()
|
|||||||
{
|
{
|
||||||
AnalyzerManager::showMode();
|
AnalyzerManager::showMode();
|
||||||
|
|
||||||
if (dontStartAfterHintForDebugMode())
|
Project *project = SessionManager::startupProject();
|
||||||
|
QTC_ASSERT(project, return);
|
||||||
|
|
||||||
|
if (dontStartAfterHintForDebugMode(project))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_diagnosticModel->clear();
|
m_diagnosticModel->clear();
|
||||||
setBusyCursor(true);
|
setBusyCursor(true);
|
||||||
Project *project = SessionManager::startupProject();
|
|
||||||
QTC_ASSERT(project, return);
|
|
||||||
m_diagnosticFilterModel->setProject(project);
|
m_diagnosticFilterModel->setProject(project);
|
||||||
m_projectInfoBeforeBuild = CppTools::CppModelManager::instance()->projectInfo(project);
|
m_projectInfoBeforeBuild = CppTools::CppModelManager::instance()->projectInfo(project);
|
||||||
QTC_ASSERT(m_projectInfoBeforeBuild.isValid(), return);
|
QTC_ASSERT(m_projectInfoBeforeBuild.isValid(), return);
|
||||||
|
Reference in New Issue
Block a user