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

[PATCH 0/5] Designated initializer cleanup & conversion

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Sep 27, 2021, 00:39 UTC
Message-ID
<cover-0.5-00000000000-20210927T003330Z-avarab@gmail.com>

For some of the memory leak fixes I've got queued up the first step is often to migrate the relevant code to using modern initializer patterns. I.e. using an *_INIT macro, initializing on the stack not the heap when possible etc.

I found that for some of those I'd start with a migration to designated initializers, but if we're doing that we might as well do (almost) all of them.

This series does /most/ of that, the remaining parts are things that would conflict with other in-flight changes, i.e. this merges cleanly with "seen". We can clean up any stray stragglers some other time.

See https://lore.kernel.org/git/cover-0.5-00000000000-20210701T104855Z-avarab@gmail.com/ for a predecessor series which already landed as bd4232fac33 (Merge branch 'ab/struct-init', 2021-07-16).

Ævar Arnfjörð Bjarmason (5):
  submodule-config.h: remove unused SUBMODULE_INIT macro
  *.[ch] *_INIT macros: use { 0 } for a "zero out" idiom
  *.h _INIT macros: don't specify fields equal to 0
  *.h: move some *_INIT to designated initializers
  cbtree.h: define cb_init() in terms of CBTREE_INIT
 add-interactive.c                             |  8 +++++--
 builtin/submodule--helper.c                   | 21 ++++++++++---------
 cache.h                                       |  4 +++-
 cbtree.h                                      |  5 +++--
 checkout.c                                    |  2 +-
 .../git-credential-gnome-keyring.c            |  2 +-
 .../libsecret/git-credential-libsecret.c      |  2 +-
 diff.c                                        |  4 ++--
 entry.h                                       |  2 +-
 lockfile.h                                    |  2 +-
 object-store.h                                |  2 +-
 object.h                                      |  2 +-
 oid-array.h                                   |  2 +-
 path.h                                        |  5 +----
 ref-filter.c                                  |  2 +-
 remote.c                                      |  2 +-
 revision.c                                    |  2 +-
 sequencer.h                                   |  4 +++-
 shallow.h                                     |  4 +++-
 simple-ipc.h                                  |  6 +-----
 strbuf.h                                      |  2 +-
 strvec.h                                      |  4 +++-
 submodule-config.h                            |  4 ----
 submodule.c                                   |  8 ++++---
 submodule.h                                   |  4 +++-
 t/helper/test-run-command.c                   |  6 ++++--
 transport.h                                   |  4 +++-
 27 files changed, 63 insertions(+), 52 deletions(-)
-- 
2.33.0.1294.g2bdf2798764
Next: Ævar Arnfjörð Bjarmason
Message 1 of 32 in “Designated initializer cleanup & conversion”
  1. 0/5 Designated initializer cleanup & conversionÆvar Arnfjörð Bjarmason, Sep 27, 2021
  2. 2/5 *.[ch] *_INIT macros: use { 0 } for a "zero out" idiomÆvar Arnfjörð Bjarmason, Sep 27, 2021
  3. Eric SunshineSep 27, 2021
  4. Johannes SixtSep 27, 2021
  5. Junio C HamanoSep 27, 2021
  6. 1/5 submodule-config.h: remove unused SUBMODULE_INIT macroÆvar Arnfjörð Bjarmason, Sep 27, 2021
  7. 3/5 *.h _INIT macros: don't specify fields equal to 0Ævar Arnfjörð Bjarmason, Sep 27, 2021
  8. 5/5 cbtree.h: define cb_init() in terms of CBTREE_INITÆvar Arnfjörð Bjarmason, Sep 27, 2021
  9. Johannes SixtSep 27, 2021
  10. Ævar Arnfjörð BjarmasonSep 27, 2021
  11. Jeff KingSep 27, 2021
  12. Johannes SixtSep 28, 2021
  13. Junio C HamanoSep 28, 2021
  14. Ævar Arnfjörð BjarmasonSep 28, 2021
  15. Junio C HamanoSep 28, 2021
  16. Phillip WoodSep 27, 2021
  17. Ævar Arnfjörð BjarmasonSep 27, 2021
  18. Phillip WoodSep 30, 2021
  19. 4/5 *.h: move some *_INIT to designated initializersÆvar Arnfjörð Bjarmason, Sep 27, 2021
  20. 0/5 Designated initializer cleanup & conversionÆvar Arnfjörð Bjarmason, Sep 27, 2021
  21. 1/5 submodule-config.h: remove unused SUBMODULE_INIT macroÆvar Arnfjörð Bjarmason, Sep 27, 2021
  22. Jeff KingSep 27, 2021
  23. 2/5 *.[ch] *_INIT macros: use { 0 } for a "zero out" idiomÆvar Arnfjörð Bjarmason, Sep 27, 2021
  24. Jeff KingSep 27, 2021
  25. Ævar Arnfjörð BjarmasonSep 28, 2021
  26. Jeff KingSep 28, 2021
  27. Ramsay JonesSep 28, 2021
  28. 3/5 *.h _INIT macros: don't specify fields equal to 0Ævar Arnfjörð Bjarmason, Sep 27, 2021
  29. Junio C HamanoSep 27, 2021
  30. 4/5 *.h: move some *_INIT to designated initializersÆvar Arnfjörð Bjarmason, Sep 27, 2021
  31. Junio C HamanoSep 27, 2021
  32. 5/5 cbtree.h: define cb_init() in terms of CBTREE_INITÆvar Arnfjörð Bjarmason, Sep 27, 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.