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

Reply via email to