no bother, I'll find some time today to do that. On Monday 09 November 2015 14:17, Tom Hacohen wrote : > 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 <jer...@asynk.ch> > >>> 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 > >> enlightenment-devel@lists.sourceforge.net > >> 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 > > enlightenment-devel@lists.sourceforge.net > > 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 > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel --- Hell'O from Yverdoom
Jérémy (jeyzu) ------------------------------------------------------------------------------ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel