Jakub Jelinek wrote: > On Tue, Mar 15, 2011 at 11:02:38AM +0100, Jim Meyering wrote: >> > Instead of "please let us know", maybe recommend using >> > __builtin_expect instead? E.g. something like >> > >> > if (__builtin_expect (ptr != NULL, 0)) >> > free (ptr); >> >> Good idea. Thanks. >> Though how about avoiding the double negative? >> >> if (__builtin_expect (ptr == NULL, 1)) >> free (ptr); > > What double negative? if (__builtin_expect (ptr != NULL, 0)) free (ptr); > is certainly correct, the latter is wrong, it will leak memory. > It will call free only if ptr is NULL, i.e. do a useless free (NULL), > if it is non-NULL, it will not do anything. > You could do > if (!__builtin_expect (ptr == NULL, 1)) > free (ptr); > but that doesn't seem to be nicer or clearer than > if (__builtin_expect (ptr != NULL, 0)) > free (ptr);
Thanks for the quick correction. I've fixed it locally, too.