git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Remove useless if-before-free tests.

From
Jim Meyering <jim@meyering.net>
Date
Feb 18, 2008, 09:18 UTC
Message-ID
<87pruuy64v.fsf@rho.meyering.net>
In-Reply-To
<ee77f5c20802171409k2dee2c87v8d84eba111c3d506@mail.gmail.com>
"David Symonds" <dsymonds@gmail.com> wrote:
Show 19 quoted lines
> On Feb 17, 2008 1:58 PM, Jim Meyering <jim@meyering.net> wrote:
>> This change removes all useless if-before-free tests.
>> E.g., it replace code like this
>>
>>         if (some_expression)
>>                 free (some_expression);
>>
>> with the now-equivalent
>>
>>         free (some_expression);
>>
>> It is equivalent not just because POSIX has required free(NULL)
>> to work for a long time, but simply because it has worked for
>> so long that no reasonable porting target fails the test.
>> Here's some evidence from nearly 1.5 years ago:
>>
>>     http://www.winehq.org/pipermail/wine-patches/2006-October/031544.html
>
> That's not great evidence. It only tests 9 systems, and misses several

If you mean mingw, cygwin, and M$-based ones, they're all ok. As far as I know, you have to go back to SunOS4 to find a system on which free(NULL) fails. That OS stopped being a reasonable porting target a couple years ago.

> targets that Git already runs on. It seems like a fairly minor cleanup
> for a definite loss of portability.

It's a definite loss of portability if you can find a reasonable porting target for which free(NULL) fails. But even if you do, the fix is not to reject the clean-up, but to amend it with a wrapper function. That encapsulates the work-around in one place rather than polluting all of those files.

Previous: David SymondsNext: Junio C Hamano
Message 3 of 18 in “Remove useless if-before-free tests.”
  1. Remove useless if-before-free tests.Jim Meyering, Feb 17, 2008
  2. David SymondsFeb 17, 2008
  3. Jim MeyeringFeb 18, 2008
  4. Junio C HamanoFeb 18, 2008
  5. Johannes SchindelinFeb 17, 2008
  6. Jim MeyeringFeb 18, 2008
  7. Jean-Luc HerrenFeb 18, 2008
  8. Jim MeyeringFeb 20, 2008
  9. Junio C HamanoFeb 22, 2008
  10. Jim MeyeringFeb 22, 2008
  11. Junio C HamanoFeb 22, 2008
  12. Jim MeyeringFeb 22, 2008
  13. Junio C HamanoFeb 22, 2008
  14. Jim MeyeringFeb 24, 2008
  15. Mike RalphsonFeb 26, 2009
  16. Uwe Kleine-KönigFeb 26, 2008
  17. Morten WelinderFeb 23, 2008
  18. Johannes SchindelinFeb 24, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.