object-store: free alt_odb_list
Free the memory and reset alt_odb_{list, tail} to NULL. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
031dc927f4
commit
97501e933a
22
object.c
22
object.c
@ -454,8 +454,30 @@ struct raw_object_store *raw_object_store_new(void)
|
|||||||
memset(o, 0, sizeof(*o));
|
memset(o, 0, sizeof(*o));
|
||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void free_alt_odb(struct alternate_object_database *alt)
|
||||||
|
{
|
||||||
|
strbuf_release(&alt->scratch);
|
||||||
|
oid_array_clear(&alt->loose_objects_cache);
|
||||||
|
free(alt);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void free_alt_odbs(struct raw_object_store *o)
|
||||||
|
{
|
||||||
|
while (o->alt_odb_list) {
|
||||||
|
struct alternate_object_database *next;
|
||||||
|
|
||||||
|
next = o->alt_odb_list->next;
|
||||||
|
free_alt_odb(o->alt_odb_list);
|
||||||
|
o->alt_odb_list = next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void raw_object_store_clear(struct raw_object_store *o)
|
void raw_object_store_clear(struct raw_object_store *o)
|
||||||
{
|
{
|
||||||
FREE_AND_NULL(o->objectdir);
|
FREE_AND_NULL(o->objectdir);
|
||||||
FREE_AND_NULL(o->alternate_db);
|
FREE_AND_NULL(o->alternate_db);
|
||||||
|
|
||||||
|
free_alt_odbs(o);
|
||||||
|
o->alt_odb_tail = NULL;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user