forked from qt-creator/qt-creator
		
	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:
		@@ -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);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user