forked from enlightenment/enlightenment
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:
parent
2eb1d715df
commit
3a9b34fd07
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
|
@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue