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