discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=e67f238c067cd274c04c5fa701fed3f4d6f1e326
commit e67f238c067cd274c04c5fa701fed3f4d6f1e326 Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Wed Dec 23 12:25:10 2015 -0500 call ecore_wl2_shutdown() in wl compositor delete callback shutdown/restart crash-- --- src/bin/e_comp.c | 9 +-------- src/bin/e_comp_wl.c | 1 + 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 68c4e42..9facdd0 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -1370,26 +1370,19 @@ e_comp_shutdown(void) Eina_List *l, *ll; E_Client *ec; -#ifdef HAVE_WAYLAND - E_Pixmap_Type type = e_comp->comp_type; -#endif E_FREE_FUNC(action_timeout, ecore_timer_del); EINA_LIST_FOREACH_SAFE(e_comp->clients, l, ll, ec) { DELD(ec, 99999); e_object_del(E_OBJECT(ec)); } + e_object_del(E_OBJECT(e_comp)); e_comp = NULL; E_FREE_LIST(handlers, ecore_event_handler_del); E_FREE_LIST(actions, e_object_del); E_FREE_LIST(hooks, e_client_hook_del); -#ifdef HAVE_WAYLAND - if (type == E_PIXMAP_TYPE_WL) - e_comp_wl_shutdown(); -#endif - gl_avail = EINA_FALSE; e_comp_cfdata_config_free(conf); E_CONFIG_DD_FREE(conf_match_edd); diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 52504de..1f5ff90 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -1659,6 +1659,7 @@ _e_comp_wl_compositor_cb_del(void *data EINA_UNUSED) if (output->model) eina_stringshare_del(output->model); free(output); } + e_comp_wl_shutdown(); /* delete fd handler */ /* if (e_comp_wl->fd_hdlr) ecore_main_fd_handler_del(e_comp_wl->fd_hdlr); */ --