From 0a4b0962b67eb2c1733dd22e37b16a4abf2f09b4 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Sun, 22 Mar 2020 14:33:22 +0000 Subject: [PATCH] dont segv on shelf settings dialog closing beofre shelf content fixes T8635 --- src/modules/conf_shelves/e_int_config_shelf.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/modules/conf_shelves/e_int_config_shelf.c b/src/modules/conf_shelves/e_int_config_shelf.c index c28bebd50..aa14e7351 100644 --- a/src/modules/conf_shelves/e_int_config_shelf.c +++ b/src/modules/conf_shelves/e_int_config_shelf.c @@ -163,6 +163,7 @@ _basic_create(E_Config_Dialog *cfd EINA_UNUSED, Evas *evas, E_Config_Dialog_Data static void _ilist_refresh(E_Shelf *es EINA_UNUSED) { + if (!_cfdata) return; _ilist_empty(_cfdata); _ilist_fill(_cfdata); } @@ -318,6 +319,7 @@ _ilist_fill(E_Config_Dialog_Data *cfdata) static void _ilist_cb_selected(void *data EINA_UNUSED) { + if (!_cfdata) return; _widgets_disable(_cfdata, 0, EINA_TRUE); } @@ -401,7 +403,8 @@ _cb_dialog_yes(void *data) E_Shelf *es; E_Config_Dialog_Data *cfdata = _cfdata; - es = data;; + if (!_cfdata) return; + es = data; if (e_object_is_del(E_OBJECT(es))) return; e_shelf_unsave(es); e_object_del(E_OBJECT(es)); @@ -417,7 +420,8 @@ _cb_dialog_destroy(void *data) E_Shelf *es; E_Config_Dialog_Data *cfdata = _cfdata; - es = data;; + if (!_cfdata) return; + es = data; if (e_object_is_del(E_OBJECT(es))) return; e_object_unref(E_OBJECT(es)); _widgets_disable(cfdata, 0, EINA_TRUE); @@ -426,6 +430,7 @@ _cb_dialog_destroy(void *data) static void _cb_config_end(void *data EINA_UNUSED) { + if (!_cfdata) return; e_widget_disabled_set(_cfdata->o_list, 0); } @@ -448,6 +453,7 @@ _cb_config(void *data, void *data2 EINA_UNUSED) static void _cb_contents_end(void *data EINA_UNUSED) { + if (!_cfdata) return; e_widget_disabled_set(_cfdata->o_list, 0); }