raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=0a4b0962b67eb2c1733dd22e37b16a4abf2f09b4

commit 0a4b0962b67eb2c1733dd22e37b16a4abf2f09b4
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Sun Mar 22 14:33:22 2020 +0000

    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);
 }
 

-- 


Reply via email to