Merge "Fix potential defects on ttsd_player" into tizen
[platform/core/uifw/tts.git] / server / ttsd_player.cpp
index 1b42e4e..3547454 100644 (file)
@@ -483,7 +483,7 @@ static void __play_thread_old(void *data, Ecore_Thread *thread)
                        ttsd_data_destroy_sound_data(sound_data);
                        sound_data = ttsd_data_create_sound_data(paused_data->utt_id, paused_data->data, paused_data->data_size,
                                        paused_data->event, paused_data->audio_type, paused_data->rate, paused_data->channels);
-                       if (NULL == sound_data || player->paused_data->data_size <= 0) {
+                       if (NULL == sound_data || paused_data->data_size <= 0) {
                                SLOG(LOG_WARN, tts_tag(), "[Player WARNING] Out of memory OR paused_data is empty");
                                ttsd_data_destroy_sound_data(sound_data);
                                sound_data = paused_data;
@@ -832,6 +832,7 @@ static void __play_thread(void *data, Ecore_Thread *thread)
 
        while (g_player_init) {
                SLOG(LOG_INFO, tts_tag(), "[Player] Wait play request...");
+               pthread_mutex_lock(&g_play_thread_mutex);
                pthread_cond_wait(&g_play_thread_cond, &g_play_thread_mutex);
                if (false == g_player_init) {
                        SLOG(LOG_INFO, tts_tag(), "[Player] Player is released");
@@ -1287,10 +1288,11 @@ int ttsd_player_all_stop()
                        app_tts_state_e state;
                        if (0 > ttsd_data_get_client_state(data->uid, &state)) {
                                SLOG(LOG_ERROR, tts_tag(), "[player ERROR] uid(%u) is not valid", data->uid);
+                               iter = g_list_next(iter);
+
                                pthread_mutex_unlock(&g_player_control_mutex);
                                ttsd_player_destroy_instance(data->uid);
                                pthread_mutex_lock(&g_player_control_mutex);
-                               iter = g_list_next(iter);
                                continue;
                        }