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@xxxxxxxxx/ 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