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 | |
parent | git-svn: fix log with single revision against a non-HEAD branch (diff) | |
download | tgif-79d722224dbad49a50072f92f823d8b12c2e5707.tar.xz |
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>
-rw-r--r-- | path-list.c | 14 | ||||
-rw-r--r-- | path-list.h | 2 |
2 files changed, 9 insertions, 7 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; diff --git a/path-list.h b/path-list.h index ce5ffabcce..5931e2cc0c 100644 --- a/path-list.h +++ b/path-list.h @@ -15,7 +15,7 @@ struct path_list void print_path_list(const char *text, const struct path_list *p); int path_list_has_path(const struct path_list *list, const char *path); -void path_list_clear(struct path_list *list, int free_items); +void path_list_clear(struct path_list *list, int free_util); struct path_list_item *path_list_insert(const char *path, struct path_list *list); struct path_list_item *path_list_lookup(const char *path, struct path_list *list); |