On 03/23, Nguyễn Thái Ngọc Duy wrote:
> From: Stefan Beller <[email protected]>
>
> Free the memory and reset alt_odb_{list, tail} to NULL.
>
> Signed-off-by: Stefan Beller <[email protected]>
> Signed-off-by: Nguyễn Thái Ngọc Duy <[email protected]>
Thanks for fixing the memory leak. Looks good now.
> ---
> object.c | 22 ++++++++++++++++++++++
> 1 file changed, 22 insertions(+)
>
> diff --git a/object.c b/object.c
> index 6ddd61242c..581347b535 100644
> --- a/object.c
> +++ b/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;
> }
> --
> 2.17.0.rc0.348.gd5a49e0b6f
>
--
Brandon Williams