summaryrefslogtreecommitdiff
path: root/path-list.c
diff options
context:
space:
mode:
authorRené Scharfe <rene.scharfe@lsrfire.ath.cx>2007-08-15 15:59:24 (GMT)
committerJunio C Hamano <gitster@pobox.com>2007-08-15 20:43:08 (GMT)
commit79d722224dbad49a50072f92f823d8b12c2e5707 (patch)
tree62c0da4b290f10bfcd358c46e31c6f31524db832 /path-list.c
parent6ed77266c6e85130920ef30cd290d36ad4464695 (diff)
downloadgit-79d722224dbad49a50072f92f823d8b12c2e5707.zip
git-79d722224dbad49a50072f92f823d8b12c2e5707.tar.gz
git-79d722224dbad49a50072f92f823d8b12c2e5707.tar.bz2
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.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/path-list.c b/path-list.c
index dcb4b3a..3d83b7b 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;