diff options
author | René Scharfe <rene.scharfe@lsrfire.ath.cx> | 2007-08-15 17:59:24 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-08-15 13:43:08 -0700 |
commit | 79d722224dbad49a50072f92f823d8b12c2e5707 (patch) | |
tree | 62c0da4b290f10bfcd358c46e31c6f31524db832 /path-list.c | |
parent | 6ed77266c6e85130920ef30cd290d36ad4464695 (diff) | |
download | git-79d722224dbad49a50072f92f823d8b12c2e5707.tar.gz |
path-list.c: always free strdup'ed paths
Always free .paths if .strdup_paths is set, no matter if the
parameter free_items is set or not, plugging a minor memory leak.
And to clarify the meaning of the flag, rename it to free_util,
since it now only affects the freeing of the .util field.
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'path-list.c')
-rw-r--r-- | path-list.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/path-list.c b/path-list.c index dcb4b3ac13..3d83b7ba9e 100644 --- a/path-list.c +++ b/path-list.c @@ -76,16 +76,18 @@ struct path_list_item *path_list_lookup(const char *path, struct path_list *list return list->items + i; } -void path_list_clear(struct path_list *list, int free_items) +void path_list_clear(struct path_list *list, int free_util) { if (list->items) { int i; - if (free_items) - for (i = 0; i < list->nr; i++) { - if (list->strdup_paths) - free(list->items[i].path); + if (list->strdup_paths) { + for (i = 0; i < list->nr; i++) + free(list->items[i].path); + } + if (free_util) { + for (i = 0; i < list->nr; i++) free(list->items[i].util); - } + } free(list->items); } list->items = NULL; |