Revert "Eo: Optimise event callback call"

This reverts commit 4b116627c2.

This can't be done, because the freeze state can change from within the
callbacks so you need to check if events are frozen every time.
This commit is contained in:
Tom Hacohen 2015-11-09 14:06:39 +00:00
parent 4b116627c2
commit e992a3a1e0
1 changed files with 29 additions and 26 deletions

View File

@ -671,45 +671,48 @@ _eo_base_event_callback_call(Eo *obj_id, Eo_Base_Data *pd,
pd->walking_list++;
if (!desc->unfreezable && (event_freeze_count || pd->event_freeze_count))
goto end;
for (cb = pd->callbacks; cb; cb = cb->next)
{
if (cb->delete_me)
continue;
if (cb->func_array)
if (!cb->delete_me)
{
const Eo_Callback_Array_Item *it;
for (it = cb->items.item_array; it->func; it++)
if (cb->func_array)
{
if (!_cb_desc_match(it->desc, desc))
const Eo_Callback_Array_Item *it;
for (it = cb->items.item_array; it->func; it++)
{
if (!_cb_desc_match(it->desc, desc))
continue;
if (!it->desc->unfreezable &&
(event_freeze_count || pd->event_freeze_count))
continue;
/* Abort callback calling if the func says so. */
if (!it->func((void *) cb->func_data, obj_id, desc,
(void *) event_info))
{
ret = EINA_FALSE;
goto end;
}
}
}
else
{
if (!_cb_desc_match(cb->items.item.desc, desc))
continue;
if (!cb->items.item.desc->unfreezable &&
(event_freeze_count || pd->event_freeze_count))
continue;
/* Abort callback calling if the func says so. */
if (!it->func((void *) cb->func_data, obj_id, desc,
(void *) event_info))
if (!cb->items.item.func((void *) cb->func_data, obj_id, desc,
(void *) event_info))
{
ret = EINA_FALSE;
goto end;
}
}
}
else
{
if (!_cb_desc_match(cb->items.item.desc, desc))
continue;
/* Abort callback calling if the func says so. */
if (!cb->items.item.func((void *) cb->func_data, obj_id, desc,
(void *) event_info))
{
ret = EINA_FALSE;
goto end;
}
}
}
end: