Cool I like the word "SAFE". But I still prefer "FREE".
So I suggest

1. ELM_SAFE_FREE(obj, evas_object_del)
evas_object_del(obj);
obj = NULL;

2. ELM_SAFE_FREE_IF(obj, evas_object_del)
if (obj)
  {
     evas_object_del(obj);
     obj = NULL;
  }

3. no macro
evas_object_del(obj);

Thanks a lot.

Daniel Juyung Seo (SeoZ)



On Tue, May 28, 2013 at 10:05 PM, ChunEon Park <her...@naver.com> wrote:

> We can use the macro what it really helpful but not everywhere.
>
> if it needs to be null set, then
> ELM_SAFE_DEL(ecore_animator_del, animator);
> ELM_SAFE_DEL(evas_object_del, obj);
> ...
>
> otherwise, below looks enough.
>
> ecore_animator_del(animator);
> evas_object_del(obj);
>
>
>
> ------------------------------------
> -Regards, Hermet-
>
> -----Original Message-----
> From: "Daniel Juyung Seo"<seojuyu...@gmail.com>
> To: "Enlightenment developer list"<
> enlightenment-devel@lists.sourceforge.net>;
> Cc:
> Sent: 2013-05-28 (화) 14:06:19
> Subject: Re: [E-devel] [EGIT] [core/elementary] master 01/01: elm: more
> ELM_FREE_FUNC cleanups.
>
> On Tue, May 28, 2013 at 2:58 AM, Rafael Antognolli <antognolli>@gmail.com
> >wrote:
>
> > On Thu, May 23, 2013 at 12:58 PM, Daniel Juyung Seo - Enlightenment
> > Git <no-reply>@enlightenment.org> wrote:
> > > seoz pushed a commit to branch master.
> > >
> > > commit 2b25732ad24a68a309f60d702087bab673e3576c
> > > Author: Daniel Juyung Seo <seojuyung>@gmail.com>
> > > Date:   Fri May 24 00:58:38 2013 +0900
> > >
> > >     elm: more ELM_FREE_FUNC cleanups.
> > > ---
> > >  src/lib/elm_box.c                    12 +--
> > >  src/lib/elm_cnp.c                     7 +-
> > >  src/lib/elm_flip.c                    6 +-
> > >  src/lib/elm_gengrid.c                 5 +-
> > >  src/lib/elm_genlist.c                29 ++------
> > >  src/lib/elm_interface_scrollable.c  146
> > ++++++++++---------------------------
> > >  src/lib/elm_transit.c                 6 +-
> > >  src/lib/elm_web.c                    15 +---
> > >  src/lib/elu_ews_wm.c                 30 ++------
> > >  9 files changed, 63 insertions(+), 193 deletions(-)
> >
> >
> > > --- a/src/lib/elm_gengrid.c
> > > +++ b/src/lib/elm_gengrid.c
> > > @@ -1240,9 +1240,8 @@ _item_place(Elm_Gen_Item *it,
> > >                 }
> > >               else if (item->item_reorder_move_animator)
> > >                 {
> > > -                  ecore_animator_del
> > > -                    (item->item_reorder_move_animator);
> > > -                  item->item_reorder_move_animator = NULL;
> > > +                  ELM_FREE_FUNC(item->item_reorder_move_animator,
> > > +                                ecore_animator_del);
> > >                    item->moving = EINA_FALSE;
> > >                 }
> > >            }
> > > diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c
> > > index 8b7e4e9..420347c 100644
> > > --- a/src/lib/elm_genlist.c
> > > +++ b/src/lib/elm_genlist.c
> > > @@ -3066,8 +3066,7 @@ _item_del(Elm_Gen_Item *it)
> > >          if (sd->tree_effect_animator)
> > >            {
> > >               _item_tree_effect_finish(sd);
> > > -             ecore_animator_del(sd->tree_effect_animator);
> > > -             sd->tree_effect_animator = NULL;
> > > +             ELM_FREE_FUNC(sd->tree_effect_animator,
> > ecore_animator_del);
> > >            }
> > >          sd->expanded_item = NULL;
> > >          sd->move_effect_mode = ELM_GENLIST_TREE_EFFECT_NONE;
> >
> > Here you changed the code to:
> >
> > if (sd->tree_effect_animator)
> >   {
> >       _item_tree_effect_finish(sd);
> >       if (sd->tree_effect_animator)
> >         {
> >            ecore_animator_del(sd->tree_effect_animator);
> >            sd->tree_effect_animator = NULL;
> >         }
> >   }
> >
> > I didn't check all of these changes, but I fear that a lot of
> > redundancy like this is being added all over the code.
> >
> >
> Yes you are right and as discussed in another mail thread I was aware of
> that before I committed this.
> But I found out there are so many human mistakes in elementary, so I wanted
> to force to use the macro.
> Of course, it's not that optimized anyway, so I am on my way to clean this
> up.
> Maybe I should modify macros.
>
> 1. ELM_IF_FREE_FUNC
> if -> del -> set to null
>
> 2. ELM_FREE_FUNC
> del -> set to null
>
> But having multiple macros for similar tasks is also confusing.
> So I welcome any kind of opinion.
> Anyhow, thanks for your reply and consideration.
>
> Please consider this as an effort to reduce many bugs in elementary.
> Thanks.
>
> Daniel Juyung Seo (SeoZ)
>
>
>
> > --
> > Rafael Antognolli
> >
> >
> >
> ------------------------------------------------------------------------------
> > Try New Relic Now & We'll Send You this Cool Shirt
> > New Relic is the only SaaS-based application performance monitoring
> service
> > that delivers powerful full stack analytics. Optimize and monitor your
> > browser, app, & servers with just a few lines of code. Try New Relic
> > and get this awesome Nerd Life shirt!
> http://p.sf.net/sfu/newrelic_d2d_may
> > _______________________________________________
> > enlightenment-devel mailing list
> > enlightenment-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >
>
> ------------------------------------------------------------------------------
> Try New Relic Now & We'll Send You this Cool Shirt
> New Relic is the only SaaS-based application performance monitoring service
> that delivers powerful full stack analytics. Optimize and monitor your
> browser, app, & servers with just a few lines of code. Try New Relic
> and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
>
> ------------------------------------------------------------------------------
> Try New Relic Now & We'll Send You this Cool Shirt
> New Relic is the only SaaS-based application performance monitoring service
> that delivers powerful full stack analytics. Optimize and monitor your
> browser, app, & servers with just a few lines of code. Try New Relic
> and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to