discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=01de5c785fde89a46219f5cdc06f54a6bb10fe52
commit 01de5c785fde89a46219f5cdc06f54a6bb10fe52 Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Mon Oct 16 11:51:06 2017 -0400 add client refs for the nocomp client this client may be referenced after deletion during render loop fix T6151 --- src/bin/e_client.c | 6 +++++- src/bin/e_comp.c | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 32881e1b6..328bc333e 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -4049,7 +4049,11 @@ e_client_fullscreen(E_Client *ec, E_Fullscreen policy) ec->need_fullscreen = 1; if (ec->new_client) return; if (e_comp->nocomp_ec && (ec->desk == e_comp->nocomp_ec->desk)) - e_comp->nocomp_ec = ec; + { + e_object_unref(E_OBJECT(e_comp->nocomp_ec)); + e_object_ref(E_OBJECT(ec)); + e_comp->nocomp_ec = ec; + } ec->desk->fullscreen_clients = eina_list_append(ec->desk->fullscreen_clients, ec); ec->pre_res_change.valid = 0; diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 85dd68782..4125ec696 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -220,6 +220,7 @@ _e_comp_cb_nocomp_begin(void) ecf = _e_comp_fullscreen_check(); if (!ecf) return; + e_object_ref(E_OBJECT(ecf)); e_comp->nocomp_ec = ecf; E_CLIENT_FOREACH(ec) if (ec != ecf) e_client_redirected_set(ec, 0); @@ -356,7 +357,7 @@ _e_comp_nocomp_end(void) evas_object_layer_set(e_comp->nocomp_ec->frame, layer); e_comp->nocomp_ec->fullscreen = fs; } - e_comp->nocomp_ec = NULL; + E_FREE_FUNC(e_comp->nocomp_ec, e_object_unref); } static Eina_Bool --