diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 3e35b8270..1833adb87 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -621,6 +621,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); if ((!ec->new_client) && (!stopping)) _e_client_event_simple(ec, E_EVENT_CLIENT_REMOVE); diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 284720b8a..1487f4cd5 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -2168,7 +2168,6 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, E_Client *ec) if (ec->comp_data->surface) wl_resource_set_user_data(ec->comp_data->surface, NULL); - E_FREE(ec->comp_data); if (ec->internal_elm_win) _e_comp_wl_surface_render_stop(ec); _e_comp_wl_focus_check(); diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index 329ed49bf..6c3279fa3 100644 --- a/src/bin/e_comp_x.c +++ b/src/bin/e_comp_x.c @@ -4361,7 +4361,6 @@ _e_comp_x_hook_client_del(void *d EINA_UNUSED, E_Client *ec) } if (cd) E_FREE_FUNC(cd->first_draw_delay, ecore_timer_del); - E_FREE(cd); if (post_clients) post_clients = eina_list_remove(post_clients, ec);