X-Git-Url: https://git.librecmc.org/?p=oweals%2Fopkg-lede.git;a=blobdiff_plain;f=libopkg%2Fpkg_dest_list.c;h=ebc80cc177bfb133b6e821639397c6e710fd7f0f;hp=48ca07fa771f3dd64cb9877522e06de3a149b0cd;hb=2985c00f6a35a39b0d5f7871ee396facdc973a54;hpb=733d8409723a397b4ced39ea7aaab8bc8b4af5d9 diff --git a/libopkg/pkg_dest_list.c b/libopkg/pkg_dest_list.c index 48ca07f..ebc80cc 100644 --- a/libopkg/pkg_dest_list.c +++ b/libopkg/pkg_dest_list.c @@ -15,71 +15,63 @@ General Public License for more details. */ -#include "includes.h" +#include #include "pkg_dest.h" #include "void_list.h" #include "pkg_dest_list.h" +#include "libbb/libbb.h" -int pkg_dest_list_elt_init(pkg_dest_list_elt_t *elt, pkg_dest_t *data) +void pkg_dest_list_elt_init(pkg_dest_list_elt_t * elt, pkg_dest_t * data) { - return void_list_elt_init((void_list_elt_t *) elt, data); + void_list_elt_init((void_list_elt_t *) elt, data); } -void pkg_dest_list_elt_deinit(pkg_dest_list_elt_t *elt) +void pkg_dest_list_elt_deinit(pkg_dest_list_elt_t * elt) { - void_list_elt_deinit((void_list_elt_t *) elt); + void_list_elt_deinit((void_list_elt_t *) elt); } -int pkg_dest_list_init(pkg_dest_list_t *list) +void pkg_dest_list_init(pkg_dest_list_t * list) { - return void_list_init((void_list_t *) list); + void_list_init((void_list_t *) list); } -void pkg_dest_list_deinit(pkg_dest_list_t *list) +void pkg_dest_list_deinit(pkg_dest_list_t * list) { - pkg_dest_list_elt_t *iter; - pkg_dest_t *pkg_dest; - - for (iter = list->head; iter; iter = iter->next) { - pkg_dest = iter->data; - pkg_dest_deinit(pkg_dest); - - /* malloced in pkg_dest_list_append */ - free(pkg_dest); - iter->data = NULL; - } - void_list_deinit((void_list_t *) list); + pkg_dest_list_elt_t *iter, *n; + pkg_dest_t *pkg_dest; + + list_for_each_entry_safe(iter, n, &list->head, node) { + pkg_dest = (pkg_dest_t *) iter->data; + pkg_dest_deinit(pkg_dest); + + /* malloced in pkg_dest_list_append */ + free(pkg_dest); + iter->data = NULL; + } + void_list_deinit((void_list_t *) list); } -pkg_dest_t *pkg_dest_list_append(pkg_dest_list_t *list, const char *name, - const char *root_dir,const char *lists_dir) +pkg_dest_t *pkg_dest_list_append(pkg_dest_list_t * list, const char *name, + const char *root_dir, const char *lists_dir) { - int err; - pkg_dest_t *pkg_dest; - - /* freed in plg_dest_list_deinit */ - pkg_dest = calloc(1, sizeof(pkg_dest_t)); - if (pkg_dest == NULL) { - fprintf(stderr, "%s: out of memory\n", __FUNCTION__); - return NULL; - } - - pkg_dest_init(pkg_dest, name, root_dir,lists_dir); - err = void_list_append((void_list_t *) list, pkg_dest); - if (err) { - return NULL; - } - - return pkg_dest; + pkg_dest_t *pkg_dest; + + /* freed in pkg_dest_list_deinit */ + pkg_dest = xcalloc(1, sizeof(pkg_dest_t)); + pkg_dest_init(pkg_dest, name, root_dir, lists_dir); + void_list_append((void_list_t *) list, pkg_dest); + + return pkg_dest; } -int pkg_dest_list_push(pkg_dest_list_t *list, pkg_dest_t *data) +void pkg_dest_list_push(pkg_dest_list_t * list, pkg_dest_t * data) { - return void_list_push((void_list_t *) list, data); + void_list_push((void_list_t *) list, data); } -pkg_dest_list_elt_t *pkg_dest_list_pop(pkg_dest_list_t *list) +pkg_dest_list_elt_t *pkg_dest_list_pop(pkg_dest_list_t * list) { - return (pkg_dest_list_elt_t *) void_list_pop((void_list_t *) list); + return (pkg_dest_list_elt_t *) void_list_pop((void_list_t *) list); }