summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2016-09-14 15:25:57 +0200
committerFrederik Gladhorn <frederik.gladhorn@qt.io>2016-09-15 13:22:26 +0000
commit59a279265f8f586f83b172c327af8865d4263317 (patch)
treeda7c1fef1c5ce5f265c8be6df424f384688d09cf
parent7e2f56ece3fa631827668bf636a1691af597f411 (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.cpp8
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);
}