Subject: Re: [PATCH v2 5/8] grep: allocate subrepos on heap

From: Junio C Hamano <[email-masked]>
Date: Fri, 13 Aug 2021 14:44:58 -0700

Jonathan Tan <[email-masked]> writes:

> +static void free_repos(void)
> +{
> +	int i;
> +
> +	for (i = 0; i < repos_to_free_nr; i++) {
> +		repo_clear(repos_to_free[i]);
> +		free(repos_to_free[i]);
> +	}
> +	free(repos_to_free);
> +	repos_to_free_nr = 0;
> +	repos_to_free_alloc = 0;

The clearing of nr/alloc is new in this round.

It does not matter if we won't using anything that allocates
repositories and accumulates them in repos_to_free after we call
free_repos() once, but then clearing the nr/alloc would not matter,
either, so it may be more consistent to FREE_AND_NULL(repos_to_free)
here, not just free(), to prepare for another call to ALLOC_GROW()
on the <repos_to_free, repos_to_free_nr, repos_to_free_alloc> tuple,
which eventually will call into REALLOC_ARRAY() on the pointer, I
would think.