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

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

View 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

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

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

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