On Thu, 28 Jun 2012 11:22:21 -0300 Gustavo Sverzut Barbieri <barbi...@profusion.mobi> wrote:
> On Thursday, June 28, 2012, Michael Blumenkrantz wrote: > > > On Wed, 27 Jun 2012 23:43:23 -0300 > > Raphael Kubo da Costa <rak...@freebsd.org> wrote: > > > > > Cedric BAIL <cedric.b...@free.fr <javascript:;>> writes: > > > > > > > I personally think that eina_iterator_free like any free function > > > > should just work fine with NULL. I was against at that time, but > > > > others won. So we do have this incoherency where some of our free > > > > function work with NULL and some don't. > > > > > > So what can we do to improve the situation here (if it does need to be > > > improved)? Speaking more generically, what criteria are used to decide > > > that a function should be decorated with EINA_ARG_NONNULL and/or have > > > magic checks performed? > > > > > > > I am hugely in favor of having all _free() and _del() functions take NULL > > arguments without erroring. > > > I disagree, in regular situation it should never return a NULL handle, so > you should never have a NULL handle to free. If that happened you did some > mistake in the code and it's easier to spot and fix. > > Compatibility with libc is moot: should we also crash on other functions as > well?! :-) > > > > > > > > > ------------------------------------------------------------------------------ > > Live Security Virtual Conference > > Exclusive live event will cover all the ways today's security and > > threat landscape has changed and how IT managers can respond. Discussions > > will include endpoint security, mobile security and the latest in malware > > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > > _______________________________________________ > > enlightenment-devel mailing list > > enlightenment-devel@lists.sourceforge.net <javascript:;> > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > You're making a slippery slope argument (http://en.wikipedia.org/wiki/Slippery_slope). My statement, and the one I was referencing, was about free and delete functions, not on all functions. Your insinuation that allowing silent passing of a NULL param to deletion functions would cause crashes is inane; the purpose of this is to simplify if (X) del(X), which is annoying and pointless. libc understands this, which is why it doesn't crash on free(NULL). A "regular situation" such as you claim never occurs does, in fact, happen in literally every single cleanup function in every app and library. ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel