Debugger: Avoid crashes when no C++-engine is available.

Check for valid runcontrols in various places and initialize
m_engine correcly. In the case of QML-Debugging, handle
NoEngineType.

Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
Task-number: QTCREATORBUG-2086
This commit is contained in:
Friedemann Kleint
2010-10-22 11:27:45 +02:00
parent 9eccc9cd27
commit db671e8202
2 changed files with 18 additions and 12 deletions

View File

@@ -276,7 +276,8 @@ unsigned DebuggerRunnerPrivate::enabledEngines() const
DebuggerRunnerPrivate::DebuggerRunnerPrivate(RunConfiguration *runConfiguration,
unsigned enabledEngines) :
m_myRunConfiguration(runConfiguration)
m_engine(0)
, m_myRunConfiguration(runConfiguration)
, m_running(false)
, m_cmdLineEnabledEngines(enabledEngines)
{
@@ -439,10 +440,11 @@ void DebuggerRunControl::createEngine(const DebuggerStartParameters &startParams
&& !sp.executable.isEmpty())
engineType = engineForExecutable(enabledEngineTypes, sp.executable);
if (!engineType)
if (engineType == NoEngineType)
engineType = engineForMode(enabledEngineTypes, sp.startMode);
if (engineType != QmlEngineType && (activeLangs & QmlLanguage)) {
if ((engineType != QmlEngineType && engineType != NoEngineType)
&& (activeLangs & QmlLanguage)) {
if (activeLangs & CppLanguage) {
sp.cppEngineType = engineType;
engineType = QmlCppEngineType;