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