[PATCH 5/5] [GSOC]: ref-filter: instead CALLOC_ARRAY to ALLOC_ARRAY
- From
ZheNing Hu via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Aug 17, 2021, 07:14 UTC
- Message-ID
- <3476e548338623f954abd73192360bcba7df3d89.1629184489.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.1020.git.1629184489.gitgitgadget@gmail.com>
From: ZheNing Hu <adlternative@gmail.com>
populate_value() uses CALLOC_ARRAY() to allocate dynamic memory for ref->value. But after that, we immediately assign values to its members in the for loop. This shows that it is not necessary to use CALLOC_ARRAY() for ref->value to clear the memory.
Therefore, use ALLOC_ARRAY() instead of CALLOC_ARRAY() to reduce the overhead caused by clearing the memory. This can bring performance optimizations.
Mentored-by: Christian Couder <christian.couder@gmail.com> Mentored-by: Hariom Verma <hariom18599@gmail.com> Signed-off-by: ZheNing Hu <adlternative@gmail.com> --- ref-filter.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/ref-filter.c b/ref-filter.c index 35e221e7ec8..fe2df82067f 100644 --- a/ref-filter.c +++ b/ref-filter.c @@ -1884,7 +1884,7 @@ static int populate_value(struct ref_array_item *ref, struct strbuf *err) struct object *obj; int i; - CALLOC_ARRAY(ref->value, used_atom_cnt); + ALLOC_ARRAY(ref->value, used_atom_cnt); if (need_symref && (ref->flag & REF_ISSYMREF) && !ref->symref) { ref->symref = resolve_refdup(ref->refname, RESOLVE_REF_READING, @@ -1903,6 +1903,7 @@ static int populate_value(struct ref_array_item *ref, struct strbuf *err) const char *refname; struct branch *branch = NULL; + v->s = NULL; v->s_size = ATOM_SIZE_UNSPECIFIED; v->handler = append_atom; v->atom = atom;
-- gitgitgadget