On 11/10, Stefan Beller wrote:
> @@ -500,6 +586,18 @@ void copy_pathspec(struct pathspec *dst, const struct 
> pathspec *src)
>  
>  void clear_pathspec(struct pathspec *pathspec)
>  {
> +     int i, j;
> +     for (i = 0; i < pathspec->nr; i++) {
> +             if (!pathspec->items[i].attr_match_nr)
> +                     continue;
> +             for (j = 0; j < pathspec->items[j].attr_match_nr; j++)
> +                     free(pathspec->items[i].attr_match[j].value);
> +             free(pathspec->items[i].attr_match);
> +             if (pathspec->items[i].attr_check)
> +                     git_attr_check_clear(pathspec->items[i].attr_check);
> +             free(pathspec->items[i].attr_check);
> +     }
> +
>       free(pathspec->items);
>       pathspec->items = NULL;

You may also want to add logic like this to the 'copy_pathspec' function
so that when a pathspec struct is copied, the destination also has
ownership of its own attribute items.

-- 
Brandon Williams

Reply via email to