Fix memory leak
[platform/core/multimedia/libmedia-service.git] / src / common / media-svc.c
index 0efeb77..e06ff01 100755 (executable)
@@ -636,21 +636,24 @@ int media_svc_refresh_item(sqlite3 *handle, bool is_direct, const char *storage_
 
        if (ret == MS_MEDIA_ERR_NONE) {
                /* Except scanner case */
-               if (!is_direct) {
-                       media_svc_debug("Update is successful. Sending noti for this");
-                       _media_svc_publish_noti(MS_MEDIA_ITEM_UPDATE, content_info.path, noti_item->media_type, noti_item->media_uuid, noti_item->mime_type);
-               } else {
+               if (is_direct) {
                        /* To avoid over-occupying memory, update per BATCH_REQUEST_MAX. */
                        if (++g_media_svc_insert_item_cur_data_cnt == BATCH_REQUEST_MAX) {
                                ret = _media_svc_list_query_do(MEDIA_SVC_QUERY_INSERT_ITEM, uid);
-                               media_svc_retv_del_if(ret != MS_MEDIA_ERR_NONE, ret, &content_info);
+                               if (ret != MS_MEDIA_ERR_NONE)
+                                       goto QUERY_ERROR;
+
                                g_media_svc_insert_item_cur_data_cnt = 0;
                        }
+               } else {
+                       media_svc_debug("Update is successful. Sending noti for this");
+                       _media_svc_publish_noti(MS_MEDIA_ITEM_UPDATE, content_info.path, noti_item->media_type, noti_item->media_uuid, noti_item->mime_type);
                }
        } else {
                media_svc_error("_media_svc_update_item_with_data failed : %d", ret);
        }
 
+QUERY_ERROR:
        _media_svc_destroy_content_info(&content_info);
        _media_svc_destroy_noti_item(noti_item);