and defer the del in other places too. anywhere where a canvas free might
authorCarsten Haitzler <raster@rasterman.com>
Fri, 4 May 2007 16:21:53 +0000 (16:21 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Fri, 4 May 2007 16:21:53 +0000 (16:21 +0000)
delete widgets that end up calling hooks that delete other objetcs that may
already be freed - this is an issue. use it.

SVN revision: 29848

src/bin/e_about.c
src/bin/e_config_dialog.c
src/bin/e_confirm_dialog.c
src/bin/e_desklock.c
src/bin/e_dialog.c
src/bin/e_eap_editor.c
src/bin/e_obj_dialog.c
src/bin/e_theme_about.c

index c62806b..0b25cff 100644 (file)
@@ -199,5 +199,5 @@ _e_about_cb_close(void *data, Evas_Object *obj, const char *emission, const char
    
    about = data;
    if (!about) return;
-   e_object_del(E_OBJECT(about));
+   e_util_defer_object_del(E_OBJECT(about));
 }
index f7630f0..4544c0e 100644 (file)
@@ -252,7 +252,7 @@ _e_config_dialog_go(E_Config_Dialog *cfd, E_Config_Dialog_CFData_Type type)
    if (pdia)
      {
        e_object_del_attach_func_set(E_OBJECT(pdia), NULL);
-       e_object_del(E_OBJECT(pdia));
+       e_util_defer_object_del(E_OBJECT(pdia));
      }
 }
 
index 0d243db..cec832f 100644 (file)
@@ -92,6 +92,6 @@ _e_confirm_dialog_delete(E_Win *win)
    cd = dia->data;
 
    if (cd->del.func) cd->del.func(cd->del.data);
-   e_object_del(E_OBJECT(dia));
+   e_util_defer_object_del(E_OBJECT(dia));
    free(cd);
 }
index 43999ab..1a4365a 100644 (file)
@@ -376,7 +376,7 @@ e_desklock_hide(void)
             evas_object_del(edp->login_box);
             evas_event_thaw(edp->popup_wnd->evas);
             
-            e_object_del(E_OBJECT(edp->popup_wnd));
+            e_util_defer_object_del(E_OBJECT(edp->popup_wnd));
             E_FREE(edp);
          }
        edd->elock_wnd_list = evas_list_remove_list(edd->elock_wnd_list, edd->elock_wnd_list);
index c983197..564cb96 100644 (file)
@@ -244,7 +244,7 @@ _e_dialog_free(E_Dialog *dia)
 static void
 _e_dialog_del_func_cb(void *data, E_Dialog *dia)
 {
-   e_object_del(E_OBJECT(dia));
+   e_util_defer_object_del(E_OBJECT(dia));
 }
 
 static void
index 6477de6..58e8d3e 100644 (file)
@@ -614,7 +614,7 @@ _e_desktop_edit_cb_icon_select_cancel(void *data, E_Dialog *dia)
    E_Config_Dialog_Data *cfdata;
 
    cfdata = data;
-   e_object_del(E_OBJECT(dia));
+   e_util_defer_object_del(E_OBJECT(dia));
    cfdata->editor->fsel_dia = NULL;
    _e_desktop_editor_icon_update(cfdata);
 }
index 49e7d85..3572931 100644 (file)
@@ -136,5 +136,5 @@ _e_obj_dialog_cb_close(void *data, Evas_Object *obj, const char *emission, const
    od = data;
    if (od->cb_delete)
      od->cb_delete(od);
-   e_object_del(E_OBJECT(od));
+   e_util_defer_object_del(E_OBJECT(od));
 }
index 5beab60..3f76dd6 100644 (file)
@@ -128,5 +128,5 @@ _e_theme_about_cb_close(void *data, Evas_Object *obj, const char *emission, cons
    
    about = data;
    if (!about) return;
-   e_object_del(E_OBJECT(about));
+   e_util_defer_object_del(E_OBJECT(about));
 }