From e3639812744bd530c37bbe6a1a31c25ffa40ab61 Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Tue, 4 Jun 2019 15:52:10 +0900 Subject: [PATCH] surface_queue: move flags from impl_data to surface_queue Change-Id: I7c8f54cd96a849df89408decf494c84c943313aa --- src/tbm_surface_queue.c | 41 +++++++++-------------------------------- 1 file changed, 9 insertions(+), 32 deletions(-) diff --git a/src/tbm_surface_queue.c b/src/tbm_surface_queue.c index b8e85ee..8a51971 100644 --- a/src/tbm_surface_queue.c +++ b/src/tbm_surface_queue.c @@ -120,6 +120,7 @@ struct _tbm_surface_queue { int height; int format; int queue_size; + int flags; int num_attached; queue free_queue; @@ -589,7 +590,7 @@ _tbm_surface_queue_release(tbm_surface_queue_h surface_queue, static void _tbm_surface_queue_init(tbm_surface_queue_h surface_queue, int queue_size, - int width, int height, int format, + int width, int height, int format, int flags, const tbm_surface_queue_interface *impl, void *data) { pthread_condattr_t free_attr, dirty_attr; @@ -616,6 +617,7 @@ _tbm_surface_queue_init(tbm_surface_queue_h surface_queue, surface_queue->width = width; surface_queue->height = height; surface_queue->format = format; + surface_queue->flags = flags; surface_queue->impl = impl; surface_queue->impl_data = data; surface_queue->modes = TBM_SURFACE_QUEUE_MODE_NONE; @@ -2091,20 +2093,9 @@ tbm_surface_queue_get_trace_surface_num( return TBM_SURFACE_QUEUE_ERROR_NONE; } -typedef struct { - int flags; -} tbm_queue_default; - -static void -__tbm_queue_default_destroy(tbm_surface_queue_h surface_queue) -{ - free(surface_queue->impl_data); -} - static void __tbm_queue_default_need_attach(tbm_surface_queue_h surface_queue) { - tbm_queue_default *data = (tbm_queue_default *)surface_queue->impl_data; tbm_surface_h surface; if (surface_queue->queue_size == surface_queue->num_attached) @@ -2122,7 +2113,7 @@ __tbm_queue_default_need_attach(tbm_surface_queue_h surface_queue) surface = tbm_surface_internal_create_with_flags(surface_queue->width, surface_queue->height, surface_queue->format, - data->flags); + surface_queue->flags); TBM_RETURN_IF_FAIL(surface != NULL); } @@ -2133,7 +2124,7 @@ __tbm_queue_default_need_attach(tbm_surface_queue_h surface_queue) static const tbm_surface_queue_interface tbm_queue_default_impl = { NULL, /*__tbm_queue_default_init*/ NULL, /*__tbm_queue_default_reset*/ - __tbm_queue_default_destroy, + NULL, /*__tbm_queue_default_destroy*/ __tbm_queue_default_need_attach, NULL, /*__tbm_queue_default_enqueue*/ NULL, /*__tbm_queue_default_release*/ @@ -2165,21 +2156,10 @@ tbm_surface_queue_create(int queue_size, int width, TBM_TRACE_SURFACE_QUEUE("tbm_surface_queue(%p)\n", surface_queue); - tbm_queue_default *data = (tbm_queue_default *) calloc(1, - sizeof(tbm_queue_default)); - if (data == NULL) { - TBM_ERR("cannot allocate the tbm_queue_default.\n"); - _tbm_set_last_result(TBM_ERROR_OUT_OF_MEMORY); - free(surface_queue); - _tbm_surf_queue_mutex_unlock(); - return NULL; - } - - data->flags = flags; _tbm_surface_queue_init(surface_queue, queue_size, - width, height, format, - &tbm_queue_default_impl, data); + width, height, format, flags, + &tbm_queue_default_impl, NULL); _tbm_surf_queue_mutex_unlock(); @@ -2187,7 +2167,6 @@ tbm_surface_queue_create(int queue_size, int width, } typedef struct { - int flags; queue dequeue_list; } tbm_queue_sequence; @@ -2219,7 +2198,6 @@ __tbm_queue_sequence_destroy(tbm_surface_queue_h surface_queue) static void __tbm_queue_sequence_need_attach(tbm_surface_queue_h surface_queue) { - tbm_queue_sequence *data = (tbm_queue_sequence *)surface_queue->impl_data; tbm_surface_h surface; if (surface_queue->queue_size == surface_queue->num_attached) @@ -2237,7 +2215,7 @@ __tbm_queue_sequence_need_attach(tbm_surface_queue_h surface_queue) surface = tbm_surface_internal_create_with_flags(surface_queue->width, surface_queue->height, surface_queue->format, - data->flags); + surface_queue->flags); TBM_RETURN_IF_FAIL(surface != NULL); } @@ -2338,10 +2316,9 @@ tbm_surface_queue_sequence_create(int queue_size, int width, return NULL; } - data->flags = flags; _tbm_surface_queue_init(surface_queue, queue_size, - width, height, format, + width, height, format, flags, &tbm_queue_sequence_impl, data); _tbm_surf_queue_mutex_unlock(); -- 2.34.1