True. If you have time to send a patch, that'd be greatly appreciated, otherwise, let me know, and I'll write the tests.
-- Tom. On 09/11/15 14:18, Jérémy Zurcher wrote: > true, > so we might need tests to cover that ... > > On Monday 09 November 2015 14:08, Tom Hacohen wrote : >> Hey, >> >> I reverted this. The freeze state can change from within the callbacks >> so you have to test it every time. >> >> -- >> Tom. >> >> On 09/11/15 14:01, Jérémy Zurcher wrote: >>> jeyzu pushed a commit to branch master. >>> >>> http://git.enlightenment.org/core/efl.git/commit/?id=4b116627c24a43248abf5a34a391241b1c0cf983 >>> >>> commit 4b116627c24a43248abf5a34a391241b1c0cf983 >>> Author: Jérémy Zurcher <[email protected]> >>> Date: Mon Nov 9 15:03:03 2015 +0100 >>> >>> Eo: Optimise event callback call >>> >>> check if the event is frozen before walking the event list >>> --- >>> src/lib/eo/eo_base_class.c | 53 >>> ++++++++++++++++++++++------------------------ >>> 1 file changed, 25 insertions(+), 28 deletions(-) >>> >>> diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c >>> index f99ca37..daf7a9d 100644 >>> --- a/src/lib/eo/eo_base_class.c >>> +++ b/src/lib/eo/eo_base_class.c >>> @@ -671,48 +671,45 @@ _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) >>> + if (cb->delete_me) >>> + continue; >>> + >>> + if (cb->func_array) >>> { >>> - if (cb->func_array) >>> - { >>> - const Eo_Callback_Array_Item *it; >>> + 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 >>> + for (it = cb->items.item_array; it->func; it++) >>> { >>> - if (!_cb_desc_match(cb->items.item.desc, desc)) >>> - continue; >>> - if (!cb->items.item.desc->unfreezable && >>> - (event_freeze_count || pd->event_freeze_count)) >>> + if (!_cb_desc_match(it->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)) >>> + 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; >>> + >>> + /* 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: >>> >> >> >> ------------------------------------------------------------------------------ >> Presto, an open source distributed SQL query engine for big data, initially >> developed by Facebook, enables you to easily query your data on Hadoop in a >> more interactive manner. Teradata is also now providing full enterprise >> support for Presto. Download a free open source copy now. >> http://pubads.g.doubleclick.net/gampad/clk?id=250295911&iu=/4140 >> _______________________________________________ >> enlightenment-devel mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > --- Hell'O from Yverdoom > > Jérémy (jeyzu) > > ------------------------------------------------------------------------------ > Presto, an open source distributed SQL query engine for big data, initially > developed by Facebook, enables you to easily query your data on Hadoop in a > more interactive manner. Teradata is also now providing full enterprise > support for Presto. Download a free open source copy now. > http://pubads.g.doubleclick.net/gampad/clk?id=250295911&iu=/4140 > _______________________________________________ > enlightenment-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > ------------------------------------------------------------------------------ Presto, an open source distributed SQL query engine for big data, initially developed by Facebook, enables you to easily query your data on Hadoop in a more interactive manner. Teradata is also now providing full enterprise support for Presto. Download a free open source copy now. http://pubads.g.doubleclick.net/gampad/clk?id=250295911&iu=/4140 _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
