From: wn.jang Date: Thu, 19 Dec 2019 01:13:17 +0000 (+0900) Subject: Add codes to avoid memory leak X-Git-Tag: accepted/tizen/unified/20200113.130603~3^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=33d86408b580bb52661091cd38aba2fad7fae910;p=platform%2Fcore%2Fuifw%2Ftts.git Add codes to avoid memory leak Change-Id: I169e8f76ba6474f24a1ec9c166833fde4d16d0f7 --- diff --git a/server/ttsd_data.cpp b/server/ttsd_data.cpp index 47e335b..f884f87 100644 --- a/server/ttsd_data.cpp +++ b/server/ttsd_data.cpp @@ -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; diff --git a/server/ttsd_data.h b/server/ttsd_data.h index de87895..34e153d 100644 --- a/server/ttsd_data.h +++ b/server/ttsd_data.h @@ -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); diff --git a/server/ttsd_player.c b/server/ttsd_player.c index 08b2c55..31a352e 100644 --- a/server/ttsd_player.c +++ b/server/ttsd_player.c @@ -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; } }