diff mbox series

[v2,3/5] *.h _INIT macros: don't specify fields equal to 0

Message ID patch-v2-3.5-590220bbdcc-20210927T124407Z-avarab@gmail.com (mailing list archive)
State Accepted
Commit 608cfd31cf8179ff971ddaf64675b47187e768c7
Headers show
Series Designated initializer cleanup & conversion | expand

Commit Message

Ævar Arnfjörð Bjarmason Sept. 27, 2021, 12:54 p.m. UTC
Change the initialization of "struct strbuf" changed in
cbc0f81d96f (strbuf: use designated initializers in STRBUF_INIT,
2017-07-10) to omit specifying "alloc" and "len", as we do with other
"alloc" and "len" (or "nr") in similar structs.

Let's likewise omit the explicit initialization of all fields in the
"struct ipc_client_connect_option" struct added in
59c7b88198a (simple-ipc: add win32 implementation, 2021-03-15).

Do the same for a few other initializers, e.g. STRVEC_INIT and
CACHE_DEF_INIT.

Finally, start incrementally changing the same pattern in
"t/helper/test-run-command.c". This change was part of an earlier
on-list version[1] of c90be786da9 (test-tool run-command: fix
flip-flop init pattern, 2021-09-11).

1. https://lore.kernel.org/git/patch-1.1-0aa4523ab6e-20210909T130849Z-avarab@gmail.com/

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 cache.h                     | 2 +-
 simple-ipc.h                | 6 +-----
 strbuf.h                    | 2 +-
 strvec.h                    | 2 +-
 submodule.h                 | 2 +-
 t/helper/test-run-command.c | 2 +-
 trace.h                     | 2 +-
 7 files changed, 7 insertions(+), 11 deletions(-)

Comments

Junio C Hamano Sept. 27, 2021, 9:54 p.m. UTC | #1
Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:

> -#define IPC_CLIENT_CONNECT_OPTIONS_INIT { \
> -	.wait_if_busy = 0, \
> -	.wait_if_not_found = 0, \
> -	.uds_disallow_chdir = 0, \
> -}
> +#define IPC_CLIENT_CONNECT_OPTIONS_INIT { 0 }

The original explicitly initializes the members using designated
init, and the loss somewhat feels like a temporary regression, but
as long as the new norm is

 - If there is *no* member that is initialized to non-zero value, we
   use { 0 }, and

 - Otherwise, we only explicitly initialize members to non-zero
   value using designated initializers

this conversion is perfectly fine.
diff mbox series

Patch

diff --git a/cache.h b/cache.h
index f6295f3b048..25c6b0b1200 100644
--- a/cache.h
+++ b/cache.h
@@ -1668,7 +1668,7 @@  struct cache_def {
 	int track_flags;
 	int prefix_len_stat_func;
 };
-#define CACHE_DEF_INIT { STRBUF_INIT, 0, 0, 0 }
+#define CACHE_DEF_INIT { STRBUF_INIT }
 static inline void cache_def_clear(struct cache_def *cache)
 {
 	strbuf_release(&cache->path);
diff --git a/simple-ipc.h b/simple-ipc.h
index 2c48a5ee004..08b2908d5f8 100644
--- a/simple-ipc.h
+++ b/simple-ipc.h
@@ -65,11 +65,7 @@  struct ipc_client_connect_options {
 	unsigned int uds_disallow_chdir:1;
 };
 
-#define IPC_CLIENT_CONNECT_OPTIONS_INIT { \
-	.wait_if_busy = 0, \
-	.wait_if_not_found = 0, \
-	.uds_disallow_chdir = 0, \
-}
+#define IPC_CLIENT_CONNECT_OPTIONS_INIT { 0 }
 
 /*
  * Determine if a server is listening on this named pipe or socket using
diff --git a/strbuf.h b/strbuf.h
index 5b1113abf8f..3b36bbc49f0 100644
--- a/strbuf.h
+++ b/strbuf.h
@@ -70,7 +70,7 @@  struct strbuf {
 };
 
 extern char strbuf_slopbuf[];
-#define STRBUF_INIT  { .alloc = 0, .len = 0, .buf = strbuf_slopbuf }
+#define STRBUF_INIT  { .buf = strbuf_slopbuf }
 
 /*
  * Predeclare this here, since cache.h includes this file before it defines the
diff --git a/strvec.h b/strvec.h
index 6b3cbd67589..a10aad5f645 100644
--- a/strvec.h
+++ b/strvec.h
@@ -33,7 +33,7 @@  struct strvec {
 	size_t alloc;
 };
 
-#define STRVEC_INIT { empty_strvec, 0, 0 }
+#define STRVEC_INIT { empty_strvec }
 
 /**
  * Initialize an array. This is no different than assigning from
diff --git a/submodule.h b/submodule.h
index 4578e501b86..35d18c7868a 100644
--- a/submodule.h
+++ b/submodule.h
@@ -37,7 +37,7 @@  struct submodule_update_strategy {
 	enum submodule_update_type type;
 	const char *command;
 };
-#define SUBMODULE_UPDATE_STRATEGY_INIT {SM_UPDATE_UNSPECIFIED, NULL}
+#define SUBMODULE_UPDATE_STRATEGY_INIT {SM_UPDATE_UNSPECIFIED}
 
 int is_gitmodules_unmerged(struct index_state *istate);
 int is_writing_gitmodules_ok(void);
diff --git a/t/helper/test-run-command.c b/t/helper/test-run-command.c
index 14c57365e76..50bb98b7e04 100644
--- a/t/helper/test-run-command.c
+++ b/t/helper/test-run-command.c
@@ -61,7 +61,7 @@  struct testsuite {
 	int quiet, immediate, verbose, verbose_log, trace, write_junit_xml;
 };
 #define TESTSUITE_INIT \
-	{ STRING_LIST_INIT_DUP, STRING_LIST_INIT_DUP, 0, 0, 0, 0, 0, 0, 0 }
+	{ STRING_LIST_INIT_DUP, STRING_LIST_INIT_DUP }
 
 static int next_test(struct child_process *cp, struct strbuf *err, void *cb,
 		     void **task_cb)
diff --git a/trace.h b/trace.h
index 0dbbad0e41c..74f62919c57 100644
--- a/trace.h
+++ b/trace.h
@@ -89,7 +89,7 @@  struct trace_key {
 
 extern struct trace_key trace_default_key;
 
-#define TRACE_KEY_INIT(name) { "GIT_TRACE_" #name, 0, 0, 0 }
+#define TRACE_KEY_INIT(name) { "GIT_TRACE_" #name }
 extern struct trace_key trace_perf_key;
 extern struct trace_key trace_setup_key;