CMake: Fix crash when building a cmake project

Reported by Loaden via mail.

Change-Id: I21a9f2ee5787d9271d20f9ed65786d8c7be08d3c
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Tobias Hunger
2013-02-15 16:18:49 +01:00
parent ccbadb2d37
commit cd1a3350a2
4 changed files with 11 additions and 13 deletions

View File

@@ -66,15 +66,13 @@ const char USE_NINJA_KEY[] = "CMakeProjectManager.MakeStep.UseNinja";
}
MakeStep::MakeStep(BuildStepList *bsl) :
AbstractProcessStep(bsl, Core::Id(MS_ID)), m_clean(false),
m_futureInterface(0)
AbstractProcessStep(bsl, Core::Id(MS_ID)), m_clean(false)
{
ctor();
}
MakeStep::MakeStep(BuildStepList *bsl, const Core::Id id) :
AbstractProcessStep(bsl, id), m_clean(false),
m_futureInterface(0)
AbstractProcessStep(bsl, id), m_clean(false)
{
ctor();
}
@@ -82,7 +80,6 @@ MakeStep::MakeStep(BuildStepList *bsl, const Core::Id id) :
MakeStep::MakeStep(BuildStepList *bsl, MakeStep *bs) :
AbstractProcessStep(bsl, bs),
m_clean(bs->m_clean),
m_futureInterface(0),
m_buildTargets(bs->m_buildTargets),
m_additionalArguments(Utils::QtcProcess::joinArgs(bs->m_buildTargets))
{
@@ -223,12 +220,7 @@ void MakeStep::run(QFutureInterface<bool> &fi)
return;
}
m_futureInterface = &fi;
m_futureInterface->setProgressRange(0, 100);
AbstractProcessStep::run(fi);
m_futureInterface->setProgressValue(100);
m_futureInterface->reportFinished();
m_futureInterface = 0;
}
BuildStepConfigWidget *MakeStep::createConfigWidget()
@@ -247,7 +239,7 @@ void MakeStep::stdOutput(const QString &line)
bool ok = false;
int percent = m_percentProgress.cap(1).toInt(&ok);;
if (ok)
m_futureInterface->setProgressValue(percent);
futureInterface()->setProgressValue(percent);
} else if (m_ninjaProgress.indexIn(line) != -1) {
bool ok = false;
int done = m_ninjaProgress.cap(1).toInt(&ok);
@@ -255,7 +247,7 @@ void MakeStep::stdOutput(const QString &line)
int all = m_ninjaProgress.cap(2).toInt(&ok);
if (ok && all != 0) {
int percent = 100.0 * done/all;
m_futureInterface->setProgressValue(percent);
futureInterface()->setProgressValue(percent);
}
}
}