From 1ac4117ec29370dbf26002cbfcb2a3d12670941f Mon Sep 17 00:00:00 2001 From: hj kim Date: Thu, 18 Jun 2020 17:29:30 +0900 Subject: [PATCH] Improve __mm_util_transform_async() Change-Id: I3fd3cd4ecfec2f744924238d4392035e609517e9 --- src/image_util.c | 46 ++++++++++------------------------------------ 1 file changed, 10 insertions(+), 36 deletions(-) diff --git a/src/image_util.c b/src/image_util.c index 6b9fd7e..6adc35a 100644 --- a/src/image_util.c +++ b/src/image_util.c @@ -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(); -- 2.7.4