We have the sequence for creating a new file_list at two places and follow-up commit will add a third one outside of the file, so it's a good occasion to use a common helper. No functional change. Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- common/file-list.c | 19 +++++++++++++------ include/file-list.h | 1 + 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/common/file-list.c b/common/file-list.c index 407b31283373..11db7c6e44c7 100644 --- a/common/file-list.c +++ b/common/file-list.c @@ -130,16 +130,25 @@ static const char *flags_to_str(int flags) return str; } -struct file_list *file_list_parse(const char *str) +struct file_list *file_list_new(void) { struct file_list *files; - int ret; - const char *endptr; files = xzalloc(sizeof(*files)); INIT_LIST_HEAD(&files->list); + return files; +} + +struct file_list *file_list_parse(const char *str) +{ + struct file_list *files; + int ret; + const char *endptr; + + files = file_list_new(); + while (*str) { ret = file_list_parse_one(files, str, &endptr); if (ret) { @@ -195,9 +204,7 @@ struct file_list *file_list_dup(struct file_list *old) struct file_list_entry *old_entry; struct file_list *new; - new = xzalloc(sizeof(*new)); - - INIT_LIST_HEAD(&new->list); + new = file_list_new(); list_for_each_entry(old_entry, &old->list, list) { (void)file_list_add_entry(new, old_entry->name, old_entry->filename, diff --git a/include/file-list.h b/include/file-list.h index 5090313739b8..af0dd7bbf108 100644 --- a/include/file-list.h +++ b/include/file-list.h @@ -29,6 +29,7 @@ void file_list_free(struct file_list *); int file_list_add_entry(struct file_list *files, const char *name, const char *filename, unsigned long flags); +struct file_list *file_list_new(void); struct file_list *file_list_dup(struct file_list *old); int file_list_detect_all(const struct file_list *files); -- 2.30.2