Check stt manager is valid for preventing crash 07/170207/2
authorJihoon Kim <jihoon48.kim@samsung.com>
Wed, 14 Feb 2018 07:39:10 +0000 (16:39 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Mon, 19 Feb 2018 23:47:34 +0000 (08:47 +0900)
Change-Id: I61f891ea5479c6168a658bc67212012c00610a1b
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
src/ise-stt-mode.cpp

index 75ce8f3..9294e3d 100644 (file)
@@ -125,7 +125,7 @@ static Eina_Bool _recognition_failure_cb(void *data)
 #ifndef _TV
 static Eina_Bool change_guide_text(void *data){
     VoiceData *voicedata = (VoiceData *) data;
-    if (!voicedata) return ECORE_CALLBACK_CANCEL;
+    if (!voicedata || !voicedata->sttmanager) return ECORE_CALLBACK_CANCEL;
 
     stt_state_e state = voicedata->sttmanager->GetCurrent();
     if (state == STT_STATE_RECORDING || state == STT_STATE_PROCESSING)
@@ -397,7 +397,8 @@ static Eina_Bool _start_timer_cb(void* data)
 
     try {
         voicedata->state = STT_STATE_VAL_PREPARE_LISTENING;
-        voicedata->sttmanager->Start();
+        if (voicedata->sttmanager)
+            voicedata->sttmanager->Start();
     }
     catch (is::stt::SttException &e) {
 #ifndef _TV
@@ -428,7 +429,7 @@ void on_initial_anim_press_cb(void *data, Evas_Object *obj, const char *emission
 {
     LOGD("on_initial_anim_press_cb");
     VoiceData *vd = (VoiceData *)data;
-    if (vd == NULL)
+    if (vd == NULL || vd->sttmanager == NULL)
         return;
 
     int tempVal = vd->sttmanager->GetCurrent();