check ec pointer before deref in luncher's E_EVENT_EXEC_DEL handler

a deleted exe is unlikely to have clients

fix T5599
devs/bu5hm4n/debug_code
Mike Blumenkrantz 6 years ago
parent 9357ecc443
commit 1f0bed7e0b
  1. 6
      src/modules/luncher/bar.c

@ -1357,7 +1357,7 @@ _bar_cb_exec_del(void *data EINA_UNUSED, int type EINA_UNUSED, E_Exec_Instance *
if (!inst->bar) continue;
if (inst->cfg->type == E_LUNCHER_MODULE_LAUNCH_ONLY) continue;
if (ex->desktop)
if (ex->desktop)
{
ic = eina_hash_find(inst->icons_desktop_hash, ex->desktop->orig_path);
}
@ -1366,8 +1366,8 @@ _bar_cb_exec_del(void *data EINA_UNUSED, int type EINA_UNUSED, E_Exec_Instance *
if (ic->starting) elm_layout_signal_emit(ic->o_layout, "e,state,started", "e");
ic->starting = EINA_FALSE;
ic->execs = eina_list_remove(ic->execs, ex);
ic->clients = eina_list_remove(ic->clients, ec);
if (ic->client_cbs)
if (ec) ic->clients = eina_list_remove(ic->clients, ec);
if (ec && ic->client_cbs)
{
ic->client_cbs = eina_list_remove(ic->client_cbs, ec);
evas_object_event_callback_del_full(ec->frame, EVAS_CALLBACK_SHOW, _bar_exec_new_show, ic);

Loading…
Cancel
Save