Free the memory and reset alt_odb_{list, tail} to NULL. Signed-off-by: Stefan Beller <sbeller@xxxxxxxxxx> --- object.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/object.c b/object.c index 11d904c033..17b1da6d6b 100644 --- a/object.c +++ b/object.c @@ -446,7 +446,24 @@ void clear_commit_marks_all(unsigned int flags) } } +static void free_alt_odb(struct alternate_object_database *alt) +{ + strbuf_release(&alt->scratch); + oid_array_clear(&alt->loose_objects_cache); +} + +static void free_alt_odbs(struct raw_object_store *o) +{ + while (o->alt_odb_list) { + free_alt_odb(o->alt_odb_list); + o->alt_odb_list = o->alt_odb_list->next; + } +} + void raw_object_store_clear(struct raw_object_store *o) { free(o->objectdir); + + free_alt_odbs(o); + o->alt_odb_tail = NULL; } -- 2.16.1.291.g4437f3f132-goog