[ACR-1216][tts][Add tts_repeat()]
[platform/core/uifw/tts.git] / client / tts_client.c
index 0a76de5..4ce1855 100644 (file)
@@ -77,8 +77,18 @@ int tts_client_new(tts_h* tts)
 
        client->cb_ref_count = 0;
 
+       client->utt_id = 0;
+       client->reason = 0;
+       client->err_msg = NULL;
+
        client->conn_timer = NULL;
 
+       client->credential = NULL;
+       client->credential_needed = false;
+       client->internal = false;
+
+       client->text_repeat = NULL;
+
        g_client_list = g_list_append(g_client_list, client);
 
        *tts = temp;
@@ -93,7 +103,7 @@ int tts_client_destroy(tts_h tts)
        if (tts == NULL) {
                SLOG(LOG_ERROR, TAG_TTSC, "Input parameter is NULL");
                return TTS_ERROR_INVALID_PARAMETER;
-       }       
+       }
 
        GList *iter = NULL;
        tts_client_s *data = NULL;
@@ -111,9 +121,28 @@ int tts_client_destroy(tts_h tts)
                                while (0 != data->cb_ref_count) {
                                        /* wait for release callback function */
                                }
+
+                               if (NULL != data->err_msg) {
+                                       free(data->err_msg);
+                                       data->err_msg = NULL;
+                               }
+
+                               if (NULL != data->credential) {
+                                       free(data->credential);
+                                       data->credential = NULL;
+                               }
+
+                               if (NULL != data->text_repeat) {
+                                       free(data->text_repeat);
+                                       data->text_repeat = NULL;
+                               }
+
                                free(data);
                                free(tts);
 
+                               data = NULL;
+                               tts = NULL;
+
                                SLOG(LOG_DEBUG, TAG_TTSC, "Client destroy");
                                g_list_free(iter);
 
@@ -260,4 +289,4 @@ int tts_client_get_mode_client_count(tts_mode_e mode)
 GList* tts_client_get_client_list()
 {
        return g_client_list;
-}
\ No newline at end of file
+}