hwc: add omitted unlocks
[platform/core/uifw/libtdm.git] / src / tdm_hwc_window.c
index 97169e1..25692b3 100644 (file)
@@ -9,7 +9,7 @@
  *          Taeheon Kim <th908.kim@samsung.com>,
  *          YoungJun Cho <yj44.cho@samsung.com>,
  *          SooChan Lim <sc1.lim@samsung.com>,
- *          Boram Park <sc1.lim@samsung.com>
+ *          Boram Park <boram1288.park@samsung.com>
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the
@@ -39,6 +39,8 @@
 
 #include "tdm_private.h"
 
+/* LCOV_EXCL_START */
+
 #define COUNT_MAX   10
 
 #define HWC_WINDOW_FUNC_ENTRY() \
@@ -86,13 +88,11 @@ tdm_hwc_window_get_tbm_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error
        func_hwc_window = &private_module->func_hwc_window;
 
        if (!func_hwc_window->hwc_window_get_tbm_buffer_queue) {
-               /* LCOV_EXCL_START */
                _pthread_mutex_unlock(&private_display->lock);
                TDM_WRN("not implemented!!");
                if (error)
                        *error = TDM_ERROR_NOT_IMPLEMENTED;
                return NULL;
-               /* LCOV_EXCL_STOP */
        }
 
        queue = func_hwc_window->hwc_window_get_tbm_buffer_queue(private_hwc_window->hwc_window_backend, error);
@@ -119,11 +119,9 @@ tdm_hwc_window_set_composition_type(tdm_hwc_window *hwc_window,
        func_hwc_window = &private_module->func_hwc_window;
 
        if (!func_hwc_window->hwc_window_set_composition_type) {
-               /* LCOV_EXCL_START */
                _pthread_mutex_unlock(&private_display->lock);
                TDM_WRN("not implemented!!");
                return TDM_ERROR_NOT_IMPLEMENTED;
-               /* LCOV_EXCL_STOP */
        }
 
        ret = func_hwc_window->hwc_window_set_composition_type(private_hwc_window->hwc_window_backend, composition_type);
@@ -149,11 +147,9 @@ tdm_hwc_window_set_buffer_damage(tdm_hwc_window *hwc_window, tdm_hwc_region dama
        func_hwc_window = &private_module->func_hwc_window;
 
        if (!func_hwc_window->hwc_window_set_buffer_damage) {
-               /* LCOV_EXCL_START */
                _pthread_mutex_unlock(&private_display->lock);
                TDM_WRN("not implemented!!");
                return TDM_ERROR_NOT_IMPLEMENTED;
-               /* LCOV_EXCL_STOP */
        }
 
        ret = func_hwc_window->hwc_window_set_buffer_damage(private_hwc_window->hwc_window_backend, damage);
@@ -181,11 +177,9 @@ tdm_hwc_window_set_info(tdm_hwc_window *hwc_window, tdm_hwc_window_info *info)
        func_hwc_window = &private_module->func_hwc_window;
 
        if (!func_hwc_window->hwc_window_set_info) {
-               /* LCOV_EXCL_START */
                _pthread_mutex_unlock(&private_display->lock);
                TDM_WRN("not implemented!!");
                return TDM_ERROR_NOT_IMPLEMENTED;
-               /* LCOV_EXCL_STOP */
        }
 
        if (info->src_config.format)
@@ -220,23 +214,19 @@ tdm_hwc_window_set_buffer(tdm_hwc_window *hwc_window, tbm_surface_h buffer)
        _pthread_mutex_lock(&private_display->lock);
 
        if ((tdm_debug_dump & TDM_DUMP_FLAG_WINDOW) && buffer) {
-               /* LCOV_EXCL_START */
                char str[TDM_PATH_LEN];
                static int i;
                snprintf(str, TDM_PATH_LEN, "window_%d_%03d", private_output->index, i++);
                tdm_helper_dump_buffer_str(buffer, tdm_debug_dump_dir, str);
-               /* LCOV_EXCL_STOP */
        }
 
        private_module = private_output->private_module;
        func_hwc_window = &private_module->func_hwc_window;
 
        if (!func_hwc_window->hwc_window_set_buffer) {
-               /* LCOV_EXCL_START */
                _pthread_mutex_unlock(&private_display->lock);
                TDM_WRN("not implemented!!");
                return TDM_ERROR_NOT_IMPLEMENTED;
-               /* LCOV_EXCL_STOP */
        }
 
        ret = func_hwc_window->hwc_window_set_buffer(private_hwc_window->hwc_window_backend, buffer);
@@ -260,11 +250,9 @@ tdm_hwc_window_unset_buffer(tdm_hwc_window *hwc_window)
        func_hwc_window = &private_module->func_hwc_window;
 
        if (!func_hwc_window->hwc_window_unset_buffer) {
-               /* LCOV_EXCL_START */
                _pthread_mutex_unlock(&private_display->lock);
                TDM_ERR("not implemented!!");
                return TDM_ERROR_NOT_IMPLEMENTED;
-               /* LCOV_EXCL_STOP */
        }
 
        ret = func_hwc_window->hwc_window_unset_buffer(private_hwc_window->hwc_window_backend);
@@ -289,11 +277,9 @@ tdm_hwc_window_create_internal(tdm_private_output *private_output, int is_video,
 
        if (!is_video) {
                if (!func_output->output_hwc_create_window) {
-                       /* LCOV_EXCL_START */
                        if (error)
                                *error = TDM_ERROR_BAD_MODULE;
                        return NULL;
-                       /* LCOV_EXCL_STOP */
                }
 
                hwc_window_backend = func_output->output_hwc_create_window(
@@ -305,11 +291,9 @@ tdm_hwc_window_create_internal(tdm_private_output *private_output, int is_video,
                }
        } else {
                if (!func_output->output_hwc_create_video_window) {
-                       /* LCOV_EXCL_START */
                        if (error)
                                *error = TDM_ERROR_NOT_IMPLEMENTED;
                        return NULL;
-                       /* LCOV_EXCL_STOP */
                }
 
                hwc_window_backend = func_output->output_hwc_create_video_window(
@@ -323,13 +307,11 @@ tdm_hwc_window_create_internal(tdm_private_output *private_output, int is_video,
 
        private_hwc_window = calloc(1, sizeof(tdm_private_hwc_window));
        if (!private_hwc_window) {
-               /* LCOV_EXCL_START */
                TDM_ERR("failed: alloc memory");
                func_output->output_hwc_destroy_window(private_output->output_backend, hwc_window_backend);
                if (error)
                        *error = TDM_ERROR_OUT_OF_MEMORY;
                return NULL;
-               /* LCOV_EXCL_STOP */
        }
 
        LIST_ADD(&private_hwc_window->link, &private_output->hwc_window_list);
@@ -384,11 +366,9 @@ tdm_hwc_window_set_flags(tdm_hwc_window *hwc_window, tdm_hwc_window_flag flags)
        func_hwc_window = &private_module->func_hwc_window;
 
        if (!func_hwc_window->hwc_window_set_flags) {
-               /* LCOV_EXCL_START */
                _pthread_mutex_unlock(&private_display->lock);
                TDM_WRN("not implemented!!");
                return TDM_ERROR_NOT_IMPLEMENTED;
-               /* LCOV_EXCL_STOP */
        }
 
        ret = func_hwc_window->hwc_window_set_flags(private_hwc_window->hwc_window_backend, flags);
@@ -412,11 +392,9 @@ tdm_hwc_window_unset_flags(tdm_hwc_window *hwc_window, tdm_hwc_window_flag flags
        func_hwc_window = &private_module->func_hwc_window;
 
        if (!func_hwc_window->hwc_window_unset_flags) {
-               /* LCOV_EXCL_START */
                _pthread_mutex_unlock(&private_display->lock);
                TDM_WRN("not implemented!!");
                return TDM_ERROR_NOT_IMPLEMENTED;
-               /* LCOV_EXCL_STOP */
        }
 
        ret = func_hwc_window->hwc_window_unset_flags(private_hwc_window->hwc_window_backend, flags);
@@ -461,21 +439,17 @@ tdm_hwc_window_commit(tdm_hwc_window *hwc_window, tdm_hwc_window_commit_handler
        func_hwc_window = &private_module->func_hwc_window;
 
        if (!func_hwc_window->hwc_window_get_layer) {
-               /* LCOV_EXCL_START */
                _pthread_mutex_unlock(&private_display->lock);
                TDM_ERR("not implemented!!");
                return TDM_ERROR_NOT_IMPLEMENTED;
-               /* LCOV_EXCL_STOP */
        }
 
        layer = func_hwc_window->hwc_window_get_layer(private_hwc_window->hwc_window_backend,
                                                                                                                   &ret);
        if (!layer) {
-               /* LCOV_EXCL_START */
                _pthread_mutex_unlock(&private_display->lock);
                TDM_ERR("no assigned layer!!");
                return TDM_ERROR_INVALID_PARAMETER;
-               /* LCOV_EXCL_STOP */
        }
 
        private_layer = (tdm_private_layer*)layer;
@@ -487,36 +461,32 @@ tdm_hwc_window_commit(tdm_hwc_window *hwc_window, tdm_hwc_window_commit_handler
        else
                ret = tdm_layer_unset_buffer_internal(private_layer);
        if (ret != TDM_ERROR_NONE) {
-               /* LCOV_EXCL_START */
                TDM_ERR("failed: layer set buffer(window)");
-               /* LCOV_EXCL_STOP */
+               _pthread_mutex_unlock(&private_display->lock);
                return ret;
        }
 
        ret = func_hwc_window->hwc_window_get_info(private_hwc_window->hwc_window_backend,
                                                                                                                   &window_info);
        if (ret != TDM_ERROR_NONE) {
-               /* LCOV_EXCL_START */
                TDM_ERR("failed: commit layer(window)");
-               /* LCOV_EXCL_STOP */
+               _pthread_mutex_unlock(&private_display->lock);
                return ret;
        }
 
        info_layer = (tdm_info_layer *)&window_info;
        ret = tdm_layer_set_info_internal(private_layer, info_layer);
        if (ret != TDM_ERROR_NONE) {
-               /* LCOV_EXCL_START */
                TDM_ERR("failed: layer set info(window)");
-               /* LCOV_EXCL_STOP */
+               _pthread_mutex_unlock(&private_display->lock);
                return ret;
        }
 
        hwc_window_commit_handler = calloc(1, sizeof(tdm_private_hwc_window_commit_handler));
        if (!hwc_window_commit_handler) {
-               /* LCOV_EXCL_START */
                TDM_ERR("failed: alloc memory");
+               _pthread_mutex_unlock(&private_display->lock);
                return TDM_ERROR_OUT_OF_MEMORY;
-               /* LCOV_EXCL_STOP */
        }
 
        hwc_window_commit_handler->private_hwc_window = private_hwc_window;
@@ -525,10 +495,9 @@ tdm_hwc_window_commit(tdm_hwc_window *hwc_window, tdm_hwc_window_commit_handler
 
        ret = tdm_layer_commit_internal(private_layer, _tdm_hwc_window_layer_commit_handler, hwc_window_commit_handler);
        if (ret != TDM_ERROR_NONE) {
-               /* LCOV_EXCL_START */
                TDM_ERR("failed: commit layer(window)");
                free(hwc_window_commit_handler);
-               /* LCOV_EXCL_STOP */
+               _pthread_mutex_unlock(&private_display->lock);
                return ret;
        }
 
@@ -554,11 +523,9 @@ tdm_hwc_window_video_get_capability(tdm_hwc_window *hwc_window,
        func_hwc_window = &private_module->func_hwc_window;
 
        if (!func_hwc_window->hwc_window_video_get_capability) {
-               /* LCOV_EXCL_START */
                _pthread_mutex_unlock(&private_display->lock);
                TDM_WRN("not implemented!!");
                return TDM_ERROR_NOT_IMPLEMENTED;
-               /* LCOV_EXCL_STOP */
        }
 
        ret = func_hwc_window->hwc_window_video_get_capability(private_hwc_window->hwc_window_backend,
@@ -587,11 +554,9 @@ tdm_hwc_window_video_get_available_properties(tdm_hwc_window *hwc_window,
        func_hwc_window = &private_module->func_hwc_window;
 
        if (!func_hwc_window->hwc_window_video_get_available_properties) {
-               /* LCOV_EXCL_START */
                _pthread_mutex_unlock(&private_display->lock);
                TDM_WRN("not implemented!!");
                return TDM_ERROR_NOT_IMPLEMENTED;
-               /* LCOV_EXCL_STOP */
        }
 
        ret = func_hwc_window->hwc_window_video_get_available_properties(private_hwc_window->hwc_window_backend,
@@ -619,11 +584,9 @@ tdm_hwc_window_video_get_property(tdm_hwc_window *hwc_window,
        func_hwc_window = &private_module->func_hwc_window;
 
        if (!func_hwc_window->hwc_window_video_get_property) {
-               /* LCOV_EXCL_START */
                _pthread_mutex_unlock(&private_display->lock);
                TDM_WRN("not implemented!!");
                return TDM_ERROR_NOT_IMPLEMENTED;
-               /* LCOV_EXCL_STOP */
        }
 
        ret = func_hwc_window->hwc_window_video_get_property(private_hwc_window->hwc_window_backend,
@@ -649,11 +612,9 @@ tdm_hwc_window_video_set_property(tdm_hwc_window *hwc_window,
        func_hwc_window = &private_module->func_hwc_window;
 
        if (!func_hwc_window->hwc_window_video_set_property) {
-               /* LCOV_EXCL_START */
                _pthread_mutex_unlock(&private_display->lock);
                TDM_WRN("not implemented!!");
                return TDM_ERROR_NOT_IMPLEMENTED;
-               /* LCOV_EXCL_STOP */
        }
 
        ret = func_hwc_window->hwc_window_video_set_property(private_hwc_window->hwc_window_backend,
@@ -663,3 +624,4 @@ tdm_hwc_window_video_set_property(tdm_hwc_window *hwc_window,
 
        return ret;
 }
+/* LCOV_EXCL_STOP */
\ No newline at end of file