From 9b540397f07fd6852079954e6519a8f61c5c0a21 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Sun, 6 May 2012 20:26:24 -0500 Subject: [PATCH] parse: add pkg_dependency_free(). --- parse.c | 17 +++++++++++++++++ pkg.h | 1 + 2 files changed, 18 insertions(+) diff --git a/parse.c b/parse.c index 4c70461..9738a02 100644 --- a/parse.c +++ b/parse.c @@ -107,6 +107,23 @@ pkg_dependency_append(pkg_dependency_t *head, pkg_dependency_t *tail) return head; } +void +pkg_dependency_free(pkg_dependency_t *head) +{ + pkg_dependency_t *node, *next; + + foreach_list_entry_safe(head, next, node) + { + if (node->package != NULL) + free(node->package); + + if (node->version != NULL) + free(node->version); + + free(node); + } +} + pkg_dependency_t * parse_deplist(pkg_t *pkg, const char *depends) { diff --git a/pkg.h b/pkg.h index 555b6f1..fa22e58 100644 --- a/pkg.h +++ b/pkg.h @@ -140,6 +140,7 @@ const char *pkg_get_comparator(pkg_dependency_t *pkgdep); pkg_t *parse_file(const char *path, FILE *f); pkg_dependency_t *parse_deplist(pkg_t *pkg, const char *depends); pkg_dependency_t *pkg_dependency_append(pkg_dependency_t *head, pkg_dependency_t *tail); +void pkg_dependency_free(pkg_dependency_t *head); /* argvsplit.c */ int argv_split(const char *src, int *argc, char ***argv);