From: Junio C Hamano Date: Mon, 08 Sep 2025 16:48:12 GMT Subject: Re: [PATCH 1/4] string-list: allow passing NULL for `get_entry_index` Message-ID: In-Reply-To: shejialuo writes: > Callers of `get_entry_index()` are required to pass a non-NULL > `exact_match` parameter to receive information about whether an exact > match is found. However, in some cases, callers only need the index > position. > > Let's allow callers to pass NULL for the `exact_match` parameter > when they don't need this information, reducing unnecessary variable > declarations in calling code. > > Signed-off-by: shejialuo > --- > string-list.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) I do not quite see the point of adding these conditional assignments to clutter the control flow. What benefit do these callers gain by not having to have a throw-away int variable on the stack and passing its address to the call chain? > diff --git a/string-list.c b/string-list.c > index 343cf1ca90..bf358d1a5c 100644 > --- a/string-list.c > +++ b/string-list.c > @@ -29,12 +29,14 @@ static size_t get_entry_index(const struct string_list *list, const char *string > else if (compare > 0) > left = middle + 1; > else { > - *exact_match = 1; > + if (exact_match) > + *exact_match = 1; > return middle; > } > } > > - *exact_match = 0; > + if (exact_match) > + *exact_match = 0; > return right; > }