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

Re: [PATCH 3/5] streaming.c: remove {open,close,read}_method_decl() macros

From
Jeff King <peff@peff.net>
Date
May 5, 2021, 13:44 UTC
Message-ID
<YJKhKdWlzVjHTKjl@coredump.intra.peff.net>
In-Reply-To
<patch-3.5-06961ee52bb-20210505T122816Z-avarab@gmail.com>
On Wed, May 05, 2021 at 02:33:30PM +0200, Ævar Arnfjörð Bjarmason wrote:
Show 10 quoted lines
> Remove the {open,close,read}_method_decl() macros added in
> 46bf043807c (streaming: a new API to read from the object store,
> 2011-05-11) in favor of inlining the definition of the arguments of
> these functions.
> 
> Since we'll end up using them via the "{open,close,read}_istream_fn"
> types we don't gain anything in the way of compiler checking by using
> these macros, and as of preceding commits we no longer need to declare
> these argument lists twice. So declaring them at a distance just
> serves to make the code less readable.

Heh. I have a very similar patch pending. In addition to readability, my reasons there are:

  - you can't find the functions with ctags, etc, when they're hidden
    behind macros
  - you can't annotate the function interfaces to avoid
    -Wunused-parameter warnings. :)

So I am very much in favor of this (and patch 1 is nice here, too, because it skips an extra time you'd have to repeat the interface in the forward declaration).

-Peff
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 4 of 12 in “streaming.c: refactor for smaller + easier to understand code”
  1. 0/5 streaming.c: refactor for smaller + easier to understand codeÆvar Arnfjörð Bjarmason, May 5, 2021
  2. 1/5 streaming.c: avoid forward declarationsÆvar Arnfjörð Bjarmason, May 5, 2021
  3. 3/5 streaming.c: remove {open,close,read}_method_decl() macrosÆvar Arnfjörð Bjarmason, May 5, 2021
  4. Jeff KingMay 5, 2021
  5. 2/5 streaming.c: remove enum/function/vtbl indirectionÆvar Arnfjörð Bjarmason, May 5, 2021
  6. Jeff KingMay 5, 2021
  7. Junio C HamanoMay 6, 2021
  8. 5/5 streaming.c: move {open,close,read} from vtable to "struct git_istream"Ævar Arnfjörð Bjarmason, May 5, 2021
  9. Jeff KingMay 5, 2021
  10. 4/5 streaming.c: stop passing around "object_info *" to open()Ævar Arnfjörð Bjarmason, May 5, 2021
  11. Jeff KingMay 5, 2021
  12. Jeff KingMay 5, 2021

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.