From 54509e7a1a33923569848ce69c6e7f94fc6a021b Mon Sep 17 00:00:00 2001 From: Timo Teräs Date: Tue, 18 Jun 2013 08:03:40 +0300 Subject: all: various conversions to foreach_array_item, and simplifications of code --- src/package.c | 55 +++++++++++++++++++++++-------------------------------- 1 file changed, 23 insertions(+), 32 deletions(-) (limited to 'src/package.c') diff --git a/src/package.c b/src/package.c index 61927e7..702a643 100644 --- a/src/package.c +++ b/src/package.c @@ -40,16 +40,12 @@ static const apk_spn_match_def apk_spn_dependency_separator = { struct apk_package *apk_pkg_get_installed(struct apk_name *name) { - int i; + struct apk_provider *p; + + foreach_array_item(p, name->providers) + if (p->pkg->name == name && p->pkg->ipkg != NULL) + return p->pkg; - for (i = 0; i < name->providers->num; i++) { - struct apk_package *pkg = name->providers->item[i].pkg; - if (pkg->name != name) - continue; - if (pkg->ipkg == NULL) - continue; - return pkg; - } return NULL; } @@ -95,6 +91,7 @@ struct apk_installed_package *apk_pkg_install(struct apk_database *db, void apk_pkg_uninstall(struct apk_database *db, struct apk_package *pkg) { struct apk_installed_package *ipkg = pkg->ipkg; + char **trigger; int i; if (ipkg == NULL) @@ -110,8 +107,8 @@ void apk_pkg_uninstall(struct apk_database *db, struct apk_package *pkg) if (ipkg->triggers->num) { list_del(&ipkg->trigger_pkgs_list); list_init(&ipkg->trigger_pkgs_list); - for (i = 0; i < ipkg->triggers->num; i++) - free(ipkg->triggers->item[i]); + foreach_array_item(trigger, ipkg->triggers) + free(*trigger); } apk_string_array_free(&ipkg->triggers); apk_string_array_free(&ipkg->pending_triggers); @@ -153,41 +150,35 @@ int apk_pkg_parse_name(apk_blob_t apkname, return 0; } -int apk_deps_add(struct apk_dependency_array **depends, - struct apk_dependency *dep) +void apk_deps_add(struct apk_dependency_array **depends, struct apk_dependency *dep) { - struct apk_dependency_array *deps = *depends; - int i; + struct apk_dependency *d0; - if (deps != NULL) { - for (i = 0; i < deps->num; i++) { - if (deps->item[i].name == dep->name) { - deps->item[i] = *dep; - return 0; + if (*depends) { + foreach_array_item(d0, *depends) { + if (d0->name == dep->name) { + *d0 = *dep; + return; } } } - *apk_dependency_array_add(depends) = *dep; - return 0; } -void apk_deps_del(struct apk_dependency_array **pdeps, - struct apk_name *name) +void apk_deps_del(struct apk_dependency_array **pdeps, struct apk_name *name) { struct apk_dependency_array *deps = *pdeps; - int i; + struct apk_dependency *d0; if (deps == NULL) return; - for (i = 0; i < deps->num; i++) { - if (deps->item[i].name != name) - continue; - - deps->item[i] = deps->item[deps->num-1]; - apk_dependency_array_resize(pdeps, deps->num-1); - break; + foreach_array_item(d0, deps) { + if (d0->name == name) { + *d0 = deps->item[deps->num - 1]; + apk_dependency_array_resize(pdeps, deps->num - 1); + break; + } } } -- cgit v1.2.3-60-g2f50