зеркало из https://github.com/microsoft/git.git
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:
Родитель
031dc927f4
Коммит
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));
|
||||
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)
|
||||
{
|
||||
FREE_AND_NULL(o->objectdir);
|
||||
FREE_AND_NULL(o->alternate_db);
|
||||
|
||||
free_alt_odbs(o);
|
||||
o->alt_odb_tail = NULL;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче