提交 8e33678a 编写于 作者: K Karthik Nayak 提交者: Junio C Hamano

for-each-ref: introduce 'ref_array_clear()'

Introduce and implement 'ref_array_clear()' which will free
all allocated memory for 'ref_array'.
Mentored-by: NChristian Couder <christian.couder@gmail.com>
Mentored-by: NMatthieu Moy <matthieu.moy@grenoble-inp.fr>
Signed-off-by: NKarthik Nayak <karthik.188@gmail.com>
Reviewed-by: NMatthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
上级 215b5651
......@@ -927,6 +927,26 @@ static int grab_single_ref(const char *refname, const struct object_id *oid,
return 0;
}
/* Free memory allocated for a ref_array_item */
static void free_array_item(struct ref_array_item *item)
{
free((char *)item->symref);
free(item->refname);
free(item);
}
/* Free all memory allocated for ref_array */
void ref_array_clear(struct ref_array *array)
{
int i;
for (i = 0; i < array->nr; i++)
free_array_item(array->items[i]);
free(array->items);
array->items = NULL;
array->nr = array->alloc = 0;
}
static int cmp_ref_sort(struct ref_sort *s, struct ref_array_item *a, struct ref_array_item *b)
{
struct atom_value *va, *vb;
......@@ -1157,5 +1177,6 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix)
maxcount = ref_cbdata.array.nr;
for (i = 0; i < maxcount; i++)
show_ref(ref_cbdata.array.items[i], format, quote_style);
ref_array_clear(&ref_cbdata.array);
return 0;
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册