Improve __mm_util_transform_async() 87/236587/3
authorhj kim <backto.kim@samsung.com>
Thu, 18 Jun 2020 08:29:30 +0000 (17:29 +0900)
committerhj kim <backto.kim@samsung.com>
Thu, 18 Jun 2020 08:44:40 +0000 (17:44 +0900)
Change-Id: I3fd3cd4ecfec2f744924238d4392035e609517e9

src/image_util.c

index 6b9fd7e..6adc35a 100644 (file)
@@ -140,8 +140,8 @@ static gpointer __transform_thread(gpointer data)
 
                mm_image_destroy_image(_transformed_image);
                mm_image_destroy_image(_t_data->src);
-               IMAGE_UTIL_SAFE_FREE(_t_data->transform);
-               IMAGE_UTIL_SAFE_FREE(_t_data);
+               IMAGE_UTIL_SAFE_G_FREE(_t_data->transform);
+               IMAGE_UTIL_SAFE_G_FREE(_t_data);
        }
 
        image_util_fleave();
@@ -149,25 +149,6 @@ static gpointer __transform_thread(gpointer data)
        return NULL;
 }
 
-static int __clone_transform(transformation_h src, transformation_h *dst)
-{
-       int ret = IMAGE_UTIL_ERROR_NONE;
-       transformation_s *_src = (transformation_s *)src;
-       transformation_s *_dst = NULL;
-
-       image_util_retvm_if(!src, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid src");
-       image_util_retvm_if(!dst, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid dst");
-
-       _dst = calloc(1, sizeof(transformation_s));
-       image_util_retvm_if(!_dst, IMAGE_UTIL_ERROR_OUT_OF_MEMORY, "Memory allocation failed");
-
-       memcpy(_dst, _src, sizeof(transformation_s));
-
-       *dst = (transformation_h)_dst;
-
-       return ret;
-}
-
 /* LCOV_EXCL_START */
 static void __destroy_async_queue(gpointer data)
 {
@@ -176,8 +157,8 @@ static void __destroy_async_queue(gpointer data)
        image_util_retm_if(!data, "Invalid data");
 
        mm_image_destroy_image(_t_data->src);
-       IMAGE_UTIL_SAFE_FREE(_t_data->transform);
-       IMAGE_UTIL_SAFE_FREE(_t_data);
+       IMAGE_UTIL_SAFE_G_FREE(_t_data->transform);
+       IMAGE_UTIL_SAFE_G_FREE(_t_data);
 }
 /* LCOV_EXCL_STOP */
 
@@ -393,22 +374,15 @@ static int __mm_util_transform_async(transformation_h handle, image_util_image_h
        image_util_retvm_if(!_handle->queue || !_handle->thread, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid thread");
        image_util_retvm_if(!__is_valid_condition(handle), IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid transform condition");
 
-       _t_data = calloc(1, sizeof(t_data_s));
-       image_util_retvm_if(!_t_data, IMAGE_UTIL_ERROR_OUT_OF_MEMORY, "Memory allocation failed");
-
-       ret = __clone_transform(handle, &_t_data->transform);
-       if (ret != IMAGE_UTIL_ERROR_NONE) {
-               image_util_error("__clone_transform failed (%d)", ret);
-               IMAGE_UTIL_SAFE_FREE(_t_data);
-               return ret;
-       }
+       _t_data = g_new0(t_data_s, 1);
+       _t_data->transform = g_memdup(_handle, sizeof(transformation_s));
 
        if (is_transform2) {
                ret = image_util_clone_image(src, &_t_data->src);
                if (ret != IMAGE_UTIL_ERROR_NONE) {
                        image_util_error("mm_util_clone_image failed (%d)", ret);
-                       IMAGE_UTIL_SAFE_FREE(_t_data->transform);
-                       IMAGE_UTIL_SAFE_FREE(_t_data);
+                       g_free(_t_data->transform);
+                       g_free(_t_data);
                        return ret;
                }
        } else {
@@ -420,8 +394,8 @@ static int __mm_util_transform_async(transformation_h handle, image_util_image_h
        _t_data->user_data = user_data;
        _t_data->is_transform2 = is_transform2;
 
-       image_util_debug("g_async_queue_push");
-       g_async_queue_push(_handle->queue, GINT_TO_POINTER(_t_data));
+       image_util_debug("g_async_queue_push [%p]", _t_data);
+       g_async_queue_push(_handle->queue, _t_data);
 
        image_util_fleave();