From: René Scharfe Date: Wed, 15 Aug 2007 15:59:24 +0000 (+0200) Subject: path-list.c: always free strdup'ed paths X-Git-Tag: v1.5.3-rc6~39 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=79d722224dbad49a50072f92f823d8b12c2e5707;p=git.git 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 Signed-off-by: Junio C Hamano --- diff --git a/path-list.c b/path-list.c index dcb4b3ac1..3d83b7ba9 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 ce5ffabcc..5931e2cc0 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);