From: SooChan Lim Date: Fri, 20 Nov 2020 03:08:43 +0000 (+0900) Subject: e_client: add e_client_cdata_new/free api. X-Git-Tag: submit/tizen/20201120.053428^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c7abdb50f9e2a1d4fb9d12f0f7b1f3f268e5dbb9;p=platform%2Fupstream%2Fenlightenment.git e_client: add e_client_cdata_new/free api. add creation/free functions for E_Comp_Wl_Client_Data and use them. Change-Id: I541c280a7e228e318e087191b0a233a9d57a0077 --- diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 37ae210814..cb08878670 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -1289,7 +1289,7 @@ _e_client_del(E_Client *ec) E_FREE_FUNC(ec->ping_poller, ecore_poller_del); /* must be called before parent/child clear */ _e_client_hook_call(E_CLIENT_HOOK_DEL, ec); - E_FREE(ec->comp_data); + e_client_cdata_free(ec); if ((!ec->new_client) && (!stopping)) { @@ -8275,9 +8275,36 @@ e_client_surface_tree_foreach(E_Client *ec, E_Client_Surface_Tree_Foreach func, _e_client_surface_tree_foreach_helper(ec, func, data); } -EINTERN E_Comp_Wl_Client_Data *e_client_cdata_get(E_Client *ec) +EINTERN E_Comp_Wl_Client_Data * +e_client_cdata_new(E_Client *ec) +{ + E_Comp_Wl_Client_Data *cdata; + + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL); + + if (!(cdata = E_NEW(E_Comp_Wl_Client_Data, 1))) + { + ERR("Could not allocate new E_Comp_Wl_Client_Data structure"); + return NULL; + } + ec->comp_data = cdata; + + return cdata; +} + +EINTERN void +e_client_cdata_free(E_Client *ec) +{ + EINA_SAFETY_ON_NULL_RETURN(ec); + if (!ec->comp_data) return; + + E_FREE(ec->comp_data); +} + +EINTERN E_Comp_Wl_Client_Data * +e_client_cdata_get(E_Client *ec) { if (!ec) return NULL; return ec->comp_data; -} +} \ No newline at end of file diff --git a/src/bin/e_client.h b/src/bin/e_client.h index 0ba3e9bda8..5406568b5e 100644 --- a/src/bin/e_client.h +++ b/src/bin/e_client.h @@ -1257,6 +1257,8 @@ E_API int e_client_show_pending_unset(E_Client *ec); EINTERN void e_client_surface_tree_foreach(E_Client *ec, E_Client_Surface_Tree_Foreach func, void *data); // get a comp_data from a ec +EINTERN E_Comp_Wl_Client_Data *e_client_cdata_new(E_Client *ec); +EINTERN void e_client_cdata_free(E_Client *ec); EINTERN E_Comp_Wl_Client_Data *e_client_cdata_get(E_Client *ec); /** diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 75732f7740..3b489f9d00 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -3633,13 +3633,12 @@ _e_comp_wl_client_cb_new(void *data EINA_UNUSED, E_Client *ec) return; } - if (!(cdata = E_NEW(E_Comp_Wl_Client_Data, 1))) + if (!(cdata = e_client_cdata_new(ec))) { ERR("Could not allocate new client data structure"); TRACE_DS_END(); return; } - ec->comp_data = cdata; wl_signal_init(&cdata->destroy_signal); wl_signal_init(&cdata->apply_viewport_signal); @@ -3764,7 +3763,7 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, E_Client *ec) E_FREE_FUNC(cdata->on_focus_timer, ecore_timer_del); - E_FREE(cdata); + e_client_cdata_free(ec); _e_comp_wl_focus_check();