From 7f76bb48b352984c4de8f40509618763e39f181f Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Sat, 6 Oct 2012 12:42:20 +0200 Subject: Don't assume success for TTS object creation. While the current implementation of getTTS() will always return an object this might change later. Check the returned object before using it to be on the safe side. Change-Id: Ic949cae7cfbe6f3086dee6aab741b0acafe14640 --- rbutil/rbutilqt/base/talkgenerator.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'rbutil/rbutilqt/base/talkgenerator.cpp') diff --git a/rbutil/rbutilqt/base/talkgenerator.cpp b/rbutil/rbutilqt/base/talkgenerator.cpp index 16e1b15184..a2ab578ade 100644 --- a/rbutil/rbutilqt/base/talkgenerator.cpp +++ b/rbutil/rbutilqt/base/talkgenerator.cpp @@ -35,12 +35,19 @@ TalkGenerator::Status TalkGenerator::process(QList* list,int wavtrimt bool warnings = false; //tts - emit logItem(tr("Starting TTS Engine"),LOGINFO); - m_tts = TTSBase::getTTS(this,RbSettings::value(RbSettings::Tts).toString()); + emit logItem(tr("Starting TTS Engine"), LOGINFO); + m_tts = TTSBase::getTTS(this, RbSettings::value(RbSettings::Tts).toString()); + if(!m_tts) + { + qDebug() << "[TalkGenerator] getting the TTS object failed!"; + emit logItem(tr("Init of TTS engine failed"), LOGERROR); + emit done(true); + return eERROR; + } if(!m_tts->start(&errStr)) { emit logItem(errStr.trimmed(),LOGERROR); - emit logItem(tr("Init of TTS engine failed"),LOGERROR); + emit logItem(tr("Init of TTS engine failed"), LOGERROR); emit done(true); return eERROR; } @@ -278,6 +285,11 @@ void TalkGenerator::setLang(QString name) QString engine = RbSettings::value(RbSettings::Tts).toString(); TTSBase* tts = TTSBase::getTTS(this,RbSettings::value(RbSettings::Tts).toString()); + if(!tts) + { + qDebug() << "[TalkGenerator] getting the TTS object failed!"; + return; + } QString vendor = tts->voiceVendor(); delete tts; -- cgit v1.2.3