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

Re: [PATCH 1/3] refactor dir_add_name

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 12, 2007, 07:13 UTC
Message-ID
<7v7iq9lk76.fsf@assigned-by-dhcp.pobox.com>
In-Reply-To
<20070611194651.GA15309@coredump.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 19 quoted lines
> ... But we could do something like
> (totally untested):
>
> #define alloc_grow(x, nr, alloc) \
>   alloc_grow_helper(&(x), nr, &(alloc), sizeof(*(x)))
>
> inline
> void alloc_grow_helper(void **x, int nr, int *alloc, int size)
> {
>   if (nr >= *alloc) {
>     *alloc = alloc_nr(*alloc);
>     *x = xrealloc(*x, *alloc * size);
>   }
> }
>
> Horribly ugly (I'm seeing stars!) but probably a bit safer in the long
> run, and nobody needs to look at it most of the time. :)
>
> What do you think?

That looks ugly and also I am curious what the generated assembly would look like. Hopefully the compiler is clever enough to generate the same code, but I dunno.

Unless somebody else more versed with C preprocessor tricks comes along and offers a better advice, I would go with the earlier simpler one with a big fat warning. I however would prefer all caps name for a magic macro like this, whose sole point is a huge side effect.

Anyway, it appears that Jonas picked up your patch to polish up, so I won't touch this series until that resurfaces.

Previous: Jeff KingNext: Jeff King
Message 7 of 16 in “Adding empty directory gives bogus error message”
  1. Jonas FonsecaJun 10, 2007
  2. Jeff KingJun 11, 2007
  3. 1/3 refactor dir_add_nameJeff King, Jun 11, 2007
  4. Johannes SchindelinJun 11, 2007
  5. Junio C HamanoJun 11, 2007
  6. Jeff KingJun 11, 2007
  7. Junio C HamanoJun 12, 2007
  8. Jeff KingJun 12, 2007
  9. Jonas FonsecaJun 12, 2007
  10. 2/3 dir_struct: add collect_ignored optionJeff King, Jun 11, 2007
  11. 3/3 builtin-add: simplify (and increase accuracy of) exclude handlingJeff King, Jun 11, 2007
  12. Jonas FonsecaJun 11, 2007
  13. Jeff KingJun 11, 2007
  14. Jonas FonsecaJun 11, 2007
  15. Jeff KingJun 11, 2007
  16. Jonas FonsecaJun 12, 2007

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.