forked from enlightenment/efl
parent
0ca79b594c
commit
b8aa1e41ed
|
@ -49,25 +49,13 @@ main(int argc, char *argv[])
|
|||
|
||||
eo_do(obj, eo_event_callback_del(EV_A_CHANGED, _a_changed_cb, (void *) 4));
|
||||
fail_if(pd->cb_count != 2);
|
||||
void *ret;
|
||||
|
||||
eo_do(obj, eo_event_callback_del_lazy(EV_A_CHANGED, _a_changed_cb, &ret));
|
||||
eo_do(obj, eo_event_callback_del(EV_A_CHANGED, _a_changed_cb, (void *) 2));
|
||||
fail_if(pd->cb_count != 1);
|
||||
|
||||
eo_do(obj, eo_event_callback_del_lazy(EV_A_CHANGED, NULL, &ret));
|
||||
fail_if(ret);
|
||||
fail_if(pd->cb_count != 1);
|
||||
eo_do(obj, eo_event_callback_del(EV_A_CHANGED, NULL, 0));
|
||||
fail_if(pd->cb_count != 1);
|
||||
|
||||
eo_do(obj, eo_event_callback_del_lazy(EV_A_CHANGED, _a_changed_cb, &ret));
|
||||
eo_do(obj, eo_event_callback_del(EV_A_CHANGED, _a_changed_cb, (void *) 1));
|
||||
fail_if(pd->cb_count != 0);
|
||||
|
||||
eo_do(obj, eo_event_callback_del_lazy(EV_A_CHANGED, _a_changed_cb, &ret));
|
||||
fail_if(ret);
|
||||
fail_if(pd->cb_count != 0);
|
||||
|
||||
|
||||
/* Freeze/thaw. */
|
||||
int fcount = 0;
|
||||
cb_count = 0;
|
||||
|
@ -116,12 +104,8 @@ main(int argc, char *argv[])
|
|||
eo_do(obj, eo_event_freeze_get(&fcount));
|
||||
fail_if(fcount != 0);
|
||||
|
||||
eo_do(obj, eo_event_callback_del_lazy(EV_A_CHANGED, _a_changed_cb, &ret));
|
||||
fail_if(!ret);
|
||||
eo_do(obj, eo_event_callback_del_lazy(EV_A_CHANGED, _a_changed_cb, &ret));
|
||||
fail_if(!ret);
|
||||
eo_do(obj, eo_event_callback_del_lazy(EV_A_CHANGED, _a_changed_cb, &ret));
|
||||
fail_if(ret);
|
||||
eo_do(obj, eo_event_callback_del(EV_A_CHANGED, _a_changed_cb, (void *) 1));
|
||||
eo_do(obj, eo_event_callback_del(EV_A_CHANGED, _a_changed_cb, (void *) 2));
|
||||
|
||||
/* Global Freeze/thaw. */
|
||||
fcount = 0;
|
||||
|
|
|
@ -857,7 +857,6 @@ enum {
|
|||
EO_BASE_SUB_ID_WREF_DEL,
|
||||
EO_BASE_SUB_ID_EVENT_CALLBACK_PRIORITY_ADD,
|
||||
EO_BASE_SUB_ID_EVENT_CALLBACK_DEL,
|
||||
EO_BASE_SUB_ID_EVENT_CALLBACK_DEL_LAZY,
|
||||
EO_BASE_SUB_ID_EVENT_CALLBACK_CALL,
|
||||
EO_BASE_SUB_ID_EVENT_CALLBACK_FORWARDER_ADD,
|
||||
EO_BASE_SUB_ID_EVENT_CALLBACK_FORWARDER_DEL,
|
||||
|
@ -1127,17 +1126,6 @@ typedef Eina_Bool (*Eo_Event_Cb)(void *data, Eo *obj, const Eo_Event_Description
|
|||
#define eo_event_callback_priority_add(desc, priority, cb, data) EO_BASE_ID(EO_BASE_SUB_ID_EVENT_CALLBACK_PRIORITY_ADD), EO_TYPECHECK(const Eo_Event_Description *, desc), EO_TYPECHECK(Eo_Callback_Priority, priority), EO_TYPECHECK(Eo_Event_Cb, cb), EO_TYPECHECK(const void *, data)
|
||||
|
||||
|
||||
/**
|
||||
* @def eo_event_callback_del_lazy
|
||||
* @brief Del a callback for an event
|
||||
* @param[in] desc The description of the event to listen to.
|
||||
* @param[in] func the callback to delete.
|
||||
* @param[out] user_data The user data associated with the callback func.
|
||||
*
|
||||
* @see eo_event_callback_del()
|
||||
*/
|
||||
#define eo_event_callback_del_lazy(desc, func, user_data) EO_BASE_ID(EO_BASE_SUB_ID_EVENT_CALLBACK_DEL_LAZY), EO_TYPECHECK(const Eo_Event_Description *, desc), EO_TYPECHECK(Eo_Event_Cb, func), EO_TYPECHECK(void **, user_data)
|
||||
|
||||
/**
|
||||
* @def eo_event_callback_del
|
||||
* @brief Del a callback with a specific data associated to it for an event.
|
||||
|
@ -1145,7 +1133,6 @@ typedef Eina_Bool (*Eo_Event_Cb)(void *data, Eo *obj, const Eo_Event_Description
|
|||
* @param[in] func the callback to delete.
|
||||
* @param[in] user_data The data to compare.
|
||||
*
|
||||
* @see eo_event_callback_del_lazy()
|
||||
*/
|
||||
#define eo_event_callback_del(desc, func, user_data) EO_BASE_ID(EO_BASE_SUB_ID_EVENT_CALLBACK_DEL), EO_TYPECHECK(const Eo_Event_Description *, desc), EO_TYPECHECK(Eo_Event_Cb, func), EO_TYPECHECK(const void *, user_data)
|
||||
|
||||
|
|
|
@ -312,33 +312,6 @@ _ev_cb_priority_add(Eo *obj, void *class_data, va_list *list)
|
|||
eo_do(obj, eo_event_callback_call(EO_EV_CALLBACK_ADD, desc, NULL));
|
||||
}
|
||||
|
||||
static void
|
||||
_ev_cb_del_lazy(Eo *obj, void *class_data, va_list *list)
|
||||
{
|
||||
Private_Data *pd = (Private_Data *) class_data;
|
||||
const Eo_Event_Description *desc = va_arg(*list, const Eo_Event_Description *);
|
||||
Eo_Event_Cb func = va_arg(*list, Eo_Event_Cb);
|
||||
void **ret = va_arg(*list, void **);
|
||||
|
||||
Eo_Callback_Description *cb;
|
||||
EINA_INLIST_FOREACH(pd->callbacks, cb)
|
||||
{
|
||||
if ((cb->event == desc) && (cb->func == func))
|
||||
{
|
||||
void *data;
|
||||
|
||||
data = cb->func_data;
|
||||
cb->delete_me = EINA_TRUE;
|
||||
_eo_callbacks_clear(pd);
|
||||
if (ret) *ret = data;
|
||||
eo_do(obj, eo_event_callback_call(EO_EV_CALLBACK_DEL, desc, NULL));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (ret) *ret = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
_ev_cb_del(Eo *obj, void *class_data, va_list *list)
|
||||
{
|
||||
|
@ -529,7 +502,6 @@ _class_constructor(Eo_Class *klass)
|
|||
EO_OP_FUNC_CONST(EO_BASE_ID(EO_BASE_SUB_ID_WREF_DEL), _wref_del),
|
||||
EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_EVENT_CALLBACK_PRIORITY_ADD), _ev_cb_priority_add),
|
||||
EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_EVENT_CALLBACK_DEL), _ev_cb_del),
|
||||
EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_EVENT_CALLBACK_DEL_LAZY), _ev_cb_del_lazy),
|
||||
EO_OP_FUNC_CONST(EO_BASE_ID(EO_BASE_SUB_ID_EVENT_CALLBACK_CALL), _ev_cb_call),
|
||||
EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_EVENT_CALLBACK_FORWARDER_ADD), _ev_cb_forwarder_add),
|
||||
EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_EVENT_CALLBACK_FORWARDER_DEL), _ev_cb_forwarder_del),
|
||||
|
@ -553,7 +525,6 @@ static const Eo_Op_Description op_desc[] = {
|
|||
EO_OP_DESCRIPTION_CONST(EO_BASE_SUB_ID_WREF_DEL, "?", "Delete the weak ref."),
|
||||
EO_OP_DESCRIPTION(EO_BASE_SUB_ID_EVENT_CALLBACK_PRIORITY_ADD, "?", "Add an event callback with a priority."),
|
||||
EO_OP_DESCRIPTION(EO_BASE_SUB_ID_EVENT_CALLBACK_DEL, "?", "Delete an event callback"),
|
||||
EO_OP_DESCRIPTION(EO_BASE_SUB_ID_EVENT_CALLBACK_DEL_LAZY, "?", "Delete an event callback in a lazy way."),
|
||||
EO_OP_DESCRIPTION_CONST(EO_BASE_SUB_ID_EVENT_CALLBACK_CALL, "?", "Call the event callbacks for an event."),
|
||||
EO_OP_DESCRIPTION(EO_BASE_SUB_ID_EVENT_CALLBACK_FORWARDER_ADD, "?", "Add an event forwarder."),
|
||||
EO_OP_DESCRIPTION(EO_BASE_SUB_ID_EVENT_CALLBACK_FORWARDER_DEL, "?", "Delete an event forwarder."),
|
||||
|
|
Loading…
Reference in New Issue