From: Michael Tremer Date: Mon, 5 Sep 2022 15:17:20 +0000 (+0000) Subject: package: Refacor pakfire_package_set_filelist X-Git-Tag: 0.9.28~327 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=30ab941e6d2167106dee048022101350b53c9582;p=pakfire.git package: Refacor pakfire_package_set_filelist Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/package.c b/src/libpakfire/package.c index 530ce6d3f..d85570a1e 100644 --- a/src/libpakfire/package.c +++ b/src/libpakfire/package.c @@ -1370,25 +1370,19 @@ static int pakfire_package_append_file(struct pakfire_package* pkg, const char* return 0; } -PAKFIRE_EXPORT int pakfire_package_set_filelist(struct pakfire_package* pkg, struct pakfire_filelist* filelist) { - int r; - - for (unsigned int i = 0; i < pakfire_filelist_size(filelist); i++) { - struct pakfire_file* file = pakfire_filelist_get(filelist, i); +static int __pakfire_package_set_filelist(struct pakfire* pakfire, + struct pakfire_file* file, void* data) { + struct pakfire_package* pkg = (struct pakfire_package*)data; - const char* path = pakfire_file_get_path(file); - if (path) { - r = pakfire_package_append_file(pkg, path); - if (r) { - pakfire_file_unref(file); - return r; - } - } + // Fetch the path + const char* path = pakfire_file_get_path(file); - pakfire_file_unref(file); - } + return pakfire_package_append_file(pkg, path); +} - return 0; +PAKFIRE_EXPORT int pakfire_package_set_filelist( + struct pakfire_package* pkg, struct pakfire_filelist* filelist) { + return pakfire_filelist_walk(filelist, __pakfire_package_set_filelist, pkg); } int pakfire_package_set_filelist_from_string(struct pakfire_package* pkg, const char* files) {