e_client: add e_client_cdata_new/free api. 49/248049/6 submit/tizen/20201120.053428
authorSooChan Lim <sc1.lim@samsung.com>
Fri, 20 Nov 2020 03:08:43 +0000 (12:08 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Fri, 20 Nov 2020 05:27:17 +0000 (14:27 +0900)
add creation/free functions for E_Comp_Wl_Client_Data and use them.

Change-Id: I541c280a7e228e318e087191b0a233a9d57a0077

src/bin/e_client.c
src/bin/e_client.h
src/bin/e_comp_wl.c

index 37ae210..cb08878 100644 (file)
@@ -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
index 0ba3e9b..5406568 100644 (file)
@@ -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);
 
 /**
index 75732f7..3b489f9 100644 (file)
@@ -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();