From: Joonbum Ko Date: Thu, 9 Jun 2022 09:43:49 +0000 (+0900) Subject: Added internal function to check buffer is validate X-Git-Tag: submit/tizen/20220818.082356~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F85%2F276085%2F3;p=platform%2Fcore%2Fuifw%2Flibtpl-egl.git Added internal function to check buffer is validate - It can be modified flexibly. - For now, this function can check if given tbm_surface_h is managed by wl_egl_surface. Change-Id: Ied59f583666a5f18f15537be6507c83c5277a866 Signed-off-by: Joonbum Ko --- diff --git a/src/tpl_wl_egl_thread.c b/src/tpl_wl_egl_thread.c index 2ad01c2..e94fe16 100755 --- a/src/tpl_wl_egl_thread.c +++ b/src/tpl_wl_egl_thread.c @@ -252,6 +252,8 @@ static int _get_tbm_surface_bo_name(tbm_surface_h tbm_surface); static void _print_buffer_lists(tpl_wl_egl_surface_t *wl_egl_surface); +static tpl_bool_t +_check_buffer_validate(tpl_wl_egl_surface_t *wl_egl_surface, tbm_surface_h tbm_surface); static void __cb_wl_egl_buffer_free(tpl_wl_egl_buffer_t *wl_egl_buffer); static tpl_wl_egl_buffer_t * @@ -3639,3 +3641,31 @@ _print_buffer_lists(tpl_wl_egl_surface_t *wl_egl_surface) } tpl_gmutex_unlock(&wl_egl_surface->buffers_mutex); } + +static tpl_bool_t +_check_buffer_validate(tpl_wl_egl_surface_t *wl_egl_surface, tbm_surface_h tbm_surface) +{ + int idx = 0; + tpl_bool_t ret = TPL_FALSE; + + /* silent return */ + if (!wl_egl_surface || !tbm_surface) + return ret; + + tpl_gmutex_lock(&wl_egl_surface->buffers_mutex); + for (idx = 0; idx < BUFFER_ARRAY_SIZE; idx++) { + tpl_wl_egl_buffer_t *wl_egl_buffer = wl_egl_surface->buffers[idx]; + if (wl_egl_buffer && wl_egl_buffer->tbm_surface == tbm_surface) { + ret = TPL_TRUE; + break; + } + } + + if (ret == TPL_FALSE || idx == BUFFER_ARRAY_SIZE) { + TPL_ERR("tbm_surface(%p) is not owned by wl_egl_surface(%p)", + tbm_surface, wl_egl_surface); + } + tpl_gmutex_unlock(&wl_egl_surface->buffers_mutex); + + return ret; +}