From 886d29d5d5a917a75708107ed6db37b643e80d1f Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 8 Nov 2016 12:45:17 -0500 Subject: [PATCH] unset wl client surface pointer on surface destroy leaving this around after this point is dangerous and has a high probability of crashing --- src/bin/e_comp_wl.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 051cd4072..f135844f7 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -1558,7 +1558,10 @@ _e_comp_wl_surface_state_commit(E_Client *ec, E_Comp_Wl_Surface_State *state) static void _e_comp_wl_surface_cb_destroy(struct wl_client *client EINA_UNUSED, struct wl_resource *resource) { + E_Client *ec; DBG("Surface Cb Destroy: %d", wl_resource_get_id(resource)); + ec = wl_resource_get_user_data(resource); + if (ec && (!e_object_is_del(E_OBJECT(ec)))) ec->comp_data->surface = NULL; wl_resource_destroy(resource); }