}
LEAVE:
- if (ret && stream_h)
- free(stream_h);
+ if (ret)
+ SM_SAFE_FREE(stream_h);
SM_LEAVE_CRITICAL_SECTION(&g_stream_info_count_mutex);
SM_ENTER_CRITICAL_SECTION_WITH_RETURN(&g_stream_info_count_mutex, MM_ERROR_SOUND_INTERNAL);
ret = _destroy_pa_connection_and_unregister_focus(stream_h);
if (ret == MM_ERROR_NONE) {
- free(stream_h);
- stream_h = NULL;
+ SM_SAFE_FREE(stream_h);
SM_UNREF_FOR_STREAM_INFO(g_stream_info_count);
}
SM_LEAVE_CRITICAL_SECTION(&g_stream_info_count_mutex);
if (extra_info)
*extra_info = extra_info_str;
else
- free(extra_info_str);
+ SM_SAFE_FREE(extra_info_str);
}
}
if (extra_info)
*extra_info = extra_info_str;
else
- free(extra_info_str);
+ SM_SAFE_FREE(extra_info_str);
}
}
/*voip stream destruction*/
if (g_voip_stream_info) {
ret = _destroy_pa_connection_and_unregister_focus(g_voip_stream_info);
- free(g_voip_stream_info);
- g_voip_stream_info = NULL;
+ SM_SAFE_FREE(g_voip_stream_info);
if (ret != MM_ERROR_NONE)
return _convert_sound_manager_error_code(__func__, ret);
}
g_voip_vstream_h = NULL;
/* destroy stream info */
_destroy_pa_connection_and_unregister_focus(g_voip_stream_info);
- free(g_voip_stream_info);
- g_voip_stream_info = NULL;
+ SM_SAFE_FREE(g_voip_stream_info);
}
if (!g_voip_stream_info) {
g_voip_stream_info = malloc(sizeof(sound_stream_info_s));
g_voip_stream_info->stream_type = "ringtone-voip";
ret = _make_pa_connection_and_register_focus(g_voip_stream_info, true, _voip_focus_state_change_callback, NULL);
if (ret != MM_ERROR_NONE) {
- free(g_voip_stream_info);
- g_voip_stream_info = NULL;
+ SM_SAFE_FREE(g_voip_stream_info);
goto ERROR_CASE;
} else {
/* acquire focus */
g_voip_vstream_h = NULL;
/* destroy stream info */
_destroy_pa_connection_and_unregister_focus(g_voip_stream_info);
- free(g_voip_stream_info);
- g_voip_stream_info = NULL;
+ SM_SAFE_FREE(g_voip_stream_info);
}
/* create stream info and acquire focus for voip stream */
if (g_cached_session_mode == -1 || g_cached_session_mode == _SESSION_MODE_RINGTONE) {
g_voip_stream_info->stream_type = "voip";
ret = _make_pa_connection_and_register_focus(g_voip_stream_info, true, _voip_focus_state_change_callback, NULL);
if (ret != MM_ERROR_NONE) {
- free(g_voip_stream_info);
- g_voip_stream_info = NULL;
+ SM_SAFE_FREE(g_voip_stream_info);
goto ERROR_CASE;
}
/* set device for routing to the device */
if (g_voip_stream_info) {
/* destroy stream info */
_destroy_pa_connection_and_unregister_focus(g_voip_stream_info);
- free(g_voip_stream_info);
- g_voip_stream_info = NULL;
+ SM_SAFE_FREE(g_voip_stream_info);
}
ERROR_CASE_NO_DESTROY:
return ret;
PA_ERROR:
for (i = 0; i < AVAIL_DEVICES_MAX; i++) {
- if (stream_h->stream_conf_info.avail_in_devices[i])
- free(stream_h->stream_conf_info.avail_in_devices[i]);
- else
- break;
- }
- for (i = 0; i < AVAIL_DEVICES_MAX; i++) {
- if (stream_h->stream_conf_info.avail_out_devices[i])
- free(stream_h->stream_conf_info.avail_out_devices[i]);
- else
- break;
- }
- for (i = 0; i < AVAIL_FRAMEWORKS_MAX; i++) {
- if (stream_h->stream_conf_info.avail_frameworks[i])
- free(stream_h->stream_conf_info.avail_frameworks[i]);
- else
- break;
+ SM_SAFE_FREE(stream_h->stream_conf_info.avail_in_devices[i]);
+ SM_SAFE_FREE(stream_h->stream_conf_info.avail_out_devices[i]);
}
+ for (i = 0; i < AVAIL_FRAMEWORKS_MAX; i++)
+ SM_SAFE_FREE(stream_h->stream_conf_info.avail_frameworks[i]);
+
+ SM_SAFE_FREE(stream_h->stream_conf_info.volume_type);
+
if (stream_h->pa_context) {
pa_context_disconnect(stream_h->pa_context);
pa_context_unref(stream_h->pa_context);
}
for (i = 0; i < AVAIL_DEVICES_MAX; i++) {
- if (stream_h->stream_conf_info.avail_in_devices[i])
- free(stream_h->stream_conf_info.avail_in_devices[i]);
- if (stream_h->stream_conf_info.avail_out_devices[i])
- free(stream_h->stream_conf_info.avail_out_devices[i]);
- }
- for (i = 0; i < AVAIL_FRAMEWORKS_MAX; i++) {
- if (stream_h->stream_conf_info.avail_frameworks[i])
- free(stream_h->stream_conf_info.avail_frameworks[i]);
+ SM_SAFE_FREE(stream_h->stream_conf_info.avail_in_devices[i]);
+ SM_SAFE_FREE(stream_h->stream_conf_info.avail_out_devices[i]);
}
+ for (i = 0; i < AVAIL_FRAMEWORKS_MAX; i++)
+ SM_SAFE_FREE(stream_h->stream_conf_info.avail_frameworks[i]);
+
+ SM_SAFE_FREE(stream_h->stream_conf_info.volume_type);
for (i = 0; i < SOUND_STREAM_INFO_ARR_MAX; i++) {
if (sound_stream_info_arr[i] && sound_stream_info_arr[i]->index == stream_h->index) {
if (virtual_stream->pa_proplist)
pa_proplist_free(virtual_stream->pa_proplist);
- free(virtual_stream);
- virtual_stream = NULL;
+ SM_SAFE_FREE(virtual_stream);
return ret;
}