From 3a9b34fd07518998d41dec7fe1c2132a36c6fe03 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Fri, 4 May 2007 16:21:53 +0000 Subject: [PATCH] and defer the del in other places too. anywhere where a canvas free might 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 | 2 +- src/bin/e_config_dialog.c | 2 +- src/bin/e_confirm_dialog.c | 2 +- src/bin/e_desklock.c | 2 +- src/bin/e_dialog.c | 2 +- src/bin/e_eap_editor.c | 2 +- src/bin/e_obj_dialog.c | 2 +- src/bin/e_theme_about.c | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/bin/e_about.c b/src/bin/e_about.c index c62806bfb..0b25cff99 100644 --- a/src/bin/e_about.c +++ b/src/bin/e_about.c @@ -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)); } diff --git a/src/bin/e_config_dialog.c b/src/bin/e_config_dialog.c index f7630f020..4544c0e42 100644 --- a/src/bin/e_config_dialog.c +++ b/src/bin/e_config_dialog.c @@ -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)); } } diff --git a/src/bin/e_confirm_dialog.c b/src/bin/e_confirm_dialog.c index 0d243dbb2..cec832fd8 100644 --- a/src/bin/e_confirm_dialog.c +++ b/src/bin/e_confirm_dialog.c @@ -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); } diff --git a/src/bin/e_desklock.c b/src/bin/e_desklock.c index 43999ab1c..1a4365ab3 100644 --- a/src/bin/e_desklock.c +++ b/src/bin/e_desklock.c @@ -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); diff --git a/src/bin/e_dialog.c b/src/bin/e_dialog.c index c983197d0..564cb96b3 100644 --- a/src/bin/e_dialog.c +++ b/src/bin/e_dialog.c @@ -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 diff --git a/src/bin/e_eap_editor.c b/src/bin/e_eap_editor.c index 6477de639..58e8d3e04 100644 --- a/src/bin/e_eap_editor.c +++ b/src/bin/e_eap_editor.c @@ -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); } diff --git a/src/bin/e_obj_dialog.c b/src/bin/e_obj_dialog.c index 49e7d8568..357293162 100644 --- a/src/bin/e_obj_dialog.c +++ b/src/bin/e_obj_dialog.c @@ -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)); } diff --git a/src/bin/e_theme_about.c b/src/bin/e_theme_about.c index 5beab6046..3f76dd6d2 100644 --- a/src/bin/e_theme_about.c +++ b/src/bin/e_theme_about.c @@ -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)); }