Add codes to avoid memory leak 90/220490/1
authorwn.jang <wn.jang@samsung.com>
Thu, 19 Dec 2019 01:13:17 +0000 (10:13 +0900)
committerwn.jang <wn.jang@samsung.com>
Thu, 19 Dec 2019 01:13:17 +0000 (10:13 +0900)
Change-Id: I169e8f76ba6474f24a1ec9c166833fde4d16d0f7

server/ttsd_data.cpp
server/ttsd_data.h
server/ttsd_player.c

index 47e335b..f884f87 100644 (file)
@@ -547,26 +547,23 @@ int ttsd_data_clear_speak_data(int uid, speak_data_s** speak_data)
        return TTSD_ERROR_NONE;
 }
 
-int ttsd_data_clear_sound_data(int uid, sound_data_s** sound_data)
+int ttsd_data_clear_sound_data(sound_data_s** sound_data)
 {
        pthread_mutex_lock(&g_sound_data_mutex);
 
-       int index = 0;
-       index = ttsd_data_is_client(uid);
-       if (index >= 0) {
-               if (NULL != *sound_data) {
-                       SLOG(LOG_ERROR, tts_tag(), "[DEBUG][%p] event(%d) data(%p) size(%d) rate(%d) utt(%d)", 
-                                       (*sound_data), (*sound_data)->event, (*sound_data)->data, (*sound_data)->data_size, (*sound_data)->rate, (*sound_data)->utt_id);
+       if (NULL != *sound_data) {
+               SLOG(LOG_ERROR, tts_tag(), "[DEBUG][%p] event(%d) data(%p) size(%d) rate(%d) utt(%d)", 
+                               (*sound_data), (*sound_data)->event, (*sound_data)->data, (*sound_data)->data_size, (*sound_data)->rate, (*sound_data)->utt_id);
 
-                       if (NULL != (*sound_data)->data) {
-                               free((*sound_data)->data);
-                               (*sound_data)->data = NULL;
-                       }
-
-                       free(*sound_data);
-                       *sound_data = NULL;
+               if (NULL != (*sound_data)->data) {
+                       free((*sound_data)->data);
+                       (*sound_data)->data = NULL;
                }
+
+               free(*sound_data);
+               *sound_data = NULL;
        }
+
        pthread_mutex_unlock(&g_sound_data_mutex);
 
        return TTSD_ERROR_NONE;
index de87895..34e153d 100644 (file)
@@ -86,7 +86,7 @@ int ttsd_data_get_sound_data(int uid, sound_data_s** data);
 
 int ttsd_data_get_sound_data_size(int uid);
 
-int ttsd_data_clear_sound_data(int uid, sound_data_s** sound_data);
+int ttsd_data_clear_sound_data(sound_data_s** sound_data);
 
 int ttsd_data_clear_data(int uid);
 
index 08b2c55..31a352e 100644 (file)
@@ -628,7 +628,7 @@ static void __play_thread(void *data, Ecore_Thread *thread)
                                        SLOG(LOG_WARN, tts_tag(), "[Send WARNIING] Current player is not valid");
                                        /* unset volume policy, volume will be 100% */
                                        __unset_policy_for_playing();
-
+                                       ttsd_data_clear_sound_data(&sound_data);
                                        return;
                                }
 
@@ -653,6 +653,7 @@ static void __play_thread(void *data, Ecore_Thread *thread)
                                                SLOG(LOG_WARN, tts_tag(), "[Send WARNIING] Current player is not valid");
                                                /* unset volume policy, volume will be 100% */
                                                __unset_policy_for_playing();
+                                               ttsd_data_clear_sound_data(&sound_data);
                                                return;
                                        }
 
@@ -666,7 +667,7 @@ static void __play_thread(void *data, Ecore_Thread *thread)
                                        }
                                }
                                SLOG(LOG_INFO, tts_tag(), "[Player] Event(%d) utterance : uid(%d), uttid(%d)", sound_data->event, player->uid, sound_data->utt_id);
-                               ttsd_data_clear_sound_data(player->uid, &sound_data);
+                               ttsd_data_clear_sound_data(&sound_data);
                                continue;
                        }
                }
@@ -682,7 +683,7 @@ static void __play_thread(void *data, Ecore_Thread *thread)
                                /* unset volume policy, volume will be 100% */
                                __unset_policy_for_playing();
 
-                               ttsd_data_clear_sound_data(player->uid, &sound_data);
+                               ttsd_data_clear_sound_data(&sound_data);
 
                                return;
                        }
@@ -710,7 +711,7 @@ static void __play_thread(void *data, Ecore_Thread *thread)
                                        /* unset volume policy, volume will be 100% */
                                        __unset_policy_for_playing();
 
-                                       ttsd_data_clear_sound_data(player->uid, &sound_data);
+                                       ttsd_data_clear_sound_data(&sound_data);
 
                                        return;
                                }
@@ -743,7 +744,7 @@ static void __play_thread(void *data, Ecore_Thread *thread)
                                /* unset volume policy, volume will be 100% */
                                __unset_policy_for_playing();
 
-                               ttsd_data_clear_sound_data(player->uid, &sound_data);
+                               ttsd_data_clear_sound_data(&sound_data);
 
                                return;
                        }
@@ -786,9 +787,9 @@ static void __play_thread(void *data, Ecore_Thread *thread)
                                SLOG(LOG_DEBUG, tts_tag(), "[Player SUCCESS] Unprepare audio");
                        }
 
-                       ttsd_data_clear_sound_data(player->uid, &sound_data);
                        /* unset volume policy, volume will be 100% */
                        __unset_policy_for_playing();
+                       ttsd_data_clear_sound_data(&sound_data);
                        return;
                }
 
@@ -801,7 +802,7 @@ static void __play_thread(void *data, Ecore_Thread *thread)
                                SLOG(LOG_WARN, tts_tag(), "[Send WARNIING] Current player is not valid");
                                /* unset volume policy, volume will be 100% */
                                __unset_policy_for_playing();
-
+                               ttsd_data_clear_sound_data(&sound_data);
                                return;
                        }
 
@@ -810,15 +811,14 @@ static void __play_thread(void *data, Ecore_Thread *thread)
                                        pid, player->uid, sound_data->utt_id);
                                /* unset volume policy, volume will be 100% */
                                __unset_policy_for_playing();
-
-                               ttsd_data_clear_sound_data(player->uid, &sound_data);
+                               ttsd_data_clear_sound_data(&sound_data);
                                return;
                        }
 
                        SLOG(LOG_INFO, tts_tag(), "[Player] Finish utterance : uid(%d), uttid(%d)", player->uid, sound_data->utt_id);
                }
 
-               ttsd_data_clear_sound_data(player->uid, &sound_data);
+               ttsd_data_clear_sound_data(&sound_data);
 
                if (NULL == g_playing_info) {
                        SLOG(LOG_ERROR, tts_tag(), "[Player ERROR] Current player is NULL");
@@ -829,7 +829,7 @@ static void __play_thread(void *data, Ecore_Thread *thread)
                        }
                        /* unset volume policy, volume will be 100% */
                        __unset_policy_for_playing();
-
+                       ttsd_data_clear_sound_data(&sound_data);
                        return;
                }
        }