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
This commit is contained in:
Carsten Haitzler 2007-05-04 16:21:53 +00:00
parent 2eb1d715df
commit 3a9b34fd07
8 changed files with 8 additions and 8 deletions

View File

@ -199,5 +199,5 @@ _e_about_cb_close(void *data, Evas_Object *obj, const char *emission, const char
about = data; about = data;
if (!about) return; if (!about) return;
e_object_del(E_OBJECT(about)); e_util_defer_object_del(E_OBJECT(about));
} }

View File

@ -252,7 +252,7 @@ _e_config_dialog_go(E_Config_Dialog *cfd, E_Config_Dialog_CFData_Type type)
if (pdia) if (pdia)
{ {
e_object_del_attach_func_set(E_OBJECT(pdia), NULL); e_object_del_attach_func_set(E_OBJECT(pdia), NULL);
e_object_del(E_OBJECT(pdia)); e_util_defer_object_del(E_OBJECT(pdia));
} }
} }

View File

@ -92,6 +92,6 @@ _e_confirm_dialog_delete(E_Win *win)
cd = dia->data; cd = dia->data;
if (cd->del.func) cd->del.func(cd->del.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); free(cd);
} }

View File

@ -376,7 +376,7 @@ e_desklock_hide(void)
evas_object_del(edp->login_box); evas_object_del(edp->login_box);
evas_event_thaw(edp->popup_wnd->evas); 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); E_FREE(edp);
} }
edd->elock_wnd_list = evas_list_remove_list(edd->elock_wnd_list, edd->elock_wnd_list); edd->elock_wnd_list = evas_list_remove_list(edd->elock_wnd_list, edd->elock_wnd_list);

View File

@ -244,7 +244,7 @@ _e_dialog_free(E_Dialog *dia)
static void static void
_e_dialog_del_func_cb(void *data, E_Dialog *dia) _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 static void

View File

@ -614,7 +614,7 @@ _e_desktop_edit_cb_icon_select_cancel(void *data, E_Dialog *dia)
E_Config_Dialog_Data *cfdata; E_Config_Dialog_Data *cfdata;
cfdata = data; cfdata = data;
e_object_del(E_OBJECT(dia)); e_util_defer_object_del(E_OBJECT(dia));
cfdata->editor->fsel_dia = NULL; cfdata->editor->fsel_dia = NULL;
_e_desktop_editor_icon_update(cfdata); _e_desktop_editor_icon_update(cfdata);
} }

View File

@ -136,5 +136,5 @@ _e_obj_dialog_cb_close(void *data, Evas_Object *obj, const char *emission, const
od = data; od = data;
if (od->cb_delete) if (od->cb_delete)
od->cb_delete(od); od->cb_delete(od);
e_object_del(E_OBJECT(od)); e_util_defer_object_del(E_OBJECT(od));
} }

View File

@ -128,5 +128,5 @@ _e_theme_about_cb_close(void *data, Evas_Object *obj, const char *emission, cons
about = data; about = data;
if (!about) return; if (!about) return;
e_object_del(E_OBJECT(about)); e_util_defer_object_del(E_OBJECT(about));
} }