add function to clear all delfns from e_object without calling (for hard mode players only)

SVN revision: 75837
This commit is contained in:
Mike Blumenkrantz 2012-08-30 06:24:38 +00:00
parent feb34b4aa3
commit 470e744c0f
2 changed files with 19 additions and 0 deletions

View File

@ -282,6 +282,24 @@ e_object_del_attach_func_set(E_Object *obj, E_Object_Cleanup_Func func)
obj->del_att_func = func;
}
EAPI void
e_object_delfn_clear(E_Object *obj)
{
E_OBJECT_CHECK(obj);
while (obj->del_fn_list)
{
E_Object_Delfn *dfn = (E_Object_Delfn *)obj->del_fn_list;
if (obj->walking_list)
dfn->delete_me = 1;
else
{
obj->del_fn_list = eina_inlist_remove(obj->del_fn_list,
EINA_INLIST_GET(dfn));
free(dfn);
}
}
}
EAPI E_Object_Delfn *
e_object_delfn_add(E_Object *obj, void (*func) (void *data, void *obj), void *data)
{

View File

@ -95,6 +95,7 @@ EAPI void e_object_del_attach_func_set (E_Object *obj, E_Object_Cleanup_Func fu
EAPI E_Object_Delfn *e_object_delfn_add (E_Object *obj, void (*func) (void *data, void *obj), void *data);
EAPI void e_object_delfn_del (E_Object *obj, E_Object_Delfn *dfn);
EAPI void e_object_delfn_clear(E_Object *obj);
/*
EAPI void e_object_breadcrumb_add (E_Object *obj, char *crumb);