diff options
author | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2016-09-14 15:25:57 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@qt.io> | 2016-09-15 13:22:26 +0000 |
commit | 59a279265f8f586f83b172c327af8865d4263317 (patch) | |
tree | da7c1fef1c5ce5f265c8be6df424f384688d09cf | |
parent | 7e2f56ece3fa631827668bf636a1691af597f411 (diff) |
Fix crash on exit when speech dispatcher is disfunctionalv5.8.0-beta1
The call to cancel output was already protected by checking if there is
a valid spd instance, also check for that before calling spd_close.
Task-number: QTBUG-55890
Change-Id: I192dc98dc995937f1db6761702e80470d9aaf01f
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
-rw-r--r-- | src/plugins/tts/speechdispatcher/qtexttospeech_speechd.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/plugins/tts/speechdispatcher/qtexttospeech_speechd.cpp b/src/plugins/tts/speechdispatcher/qtexttospeech_speechd.cpp index 9ee406c..118a71c 100644 --- a/src/plugins/tts/speechdispatcher/qtexttospeech_speechd.cpp +++ b/src/plugins/tts/speechdispatcher/qtexttospeech_speechd.cpp @@ -72,9 +72,11 @@ QTextToSpeechEngineSpeechd::QTextToSpeechEngineSpeechd(const QVariantMap &, QObj QTextToSpeechEngineSpeechd::~QTextToSpeechEngineSpeechd() { - if ((m_state != QTextToSpeech::BackendError) && (m_state != QTextToSpeech::Ready) && speechDispatcher) - spd_cancel_all(speechDispatcher); - spd_close(speechDispatcher); + if (speechDispatcher) { + if ((m_state != QTextToSpeech::BackendError) && (m_state != QTextToSpeech::Ready)) + spd_cancel_all(speechDispatcher); + spd_close(speechDispatcher); + } backends->removeAll(this); } |