summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2011-07-04 03:17:12 +0200
committerDan McGee <dan@archlinux.org>2011-07-05 17:22:11 +0200
commit24324ff0e12a3e19cada669a4c5c391e486790a3 (patch)
treebb211091670af259881bd326d5e034efea7eae26
parent97103f860d48e1f6f9c0dd7c75568618f8ed5163 (diff)
downloadpacman-24324ff0e12a3e19cada669a4c5c391e486790a3.tar.gz
pacman-24324ff0e12a3e19cada669a4c5c391e486790a3.tar.xz
Simplify alpm_list_previous
We can readily detect the first node in a list by checking if node->prev->next is NULL. So there is no need to pass the head of the list to this function and its prototype now looks like all the other item accessors. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--lib/libalpm/alpm_list.c7
-rw-r--r--lib/libalpm/alpm_list.h2
-rw-r--r--lib/libalpm/remove.c4
3 files changed, 6 insertions, 7 deletions
diff --git a/lib/libalpm/alpm_list.c b/lib/libalpm/alpm_list.c
index 38cefa62..071cd994 100644
--- a/lib/libalpm/alpm_list.c
+++ b/lib/libalpm/alpm_list.c
@@ -547,11 +547,10 @@ inline alpm_list_t SYMEXPORT *alpm_list_next(const alpm_list_t *node)
*
* @return the previous element, or NULL when no previous element exist
*/
-inline alpm_list_t SYMEXPORT *alpm_list_previous(const alpm_list_t *list,
- const alpm_list_t *node)
+inline alpm_list_t SYMEXPORT *alpm_list_previous(const alpm_list_t *list)
{
- if(node && node != list) {
- return node->prev;
+ if(list && list->prev->next) {
+ return list->prev;
} else {
return NULL;
}
diff --git a/lib/libalpm/alpm_list.h b/lib/libalpm/alpm_list.h
index 824e8660..5e8ca460 100644
--- a/lib/libalpm/alpm_list.h
+++ b/lib/libalpm/alpm_list.h
@@ -69,7 +69,7 @@ alpm_list_t *alpm_list_reverse(alpm_list_t *list);
/* item accessors */
alpm_list_t *alpm_list_nth(const alpm_list_t *list, size_t n);
alpm_list_t *alpm_list_next(const alpm_list_t *list);
-alpm_list_t *alpm_list_previous(const alpm_list_t *list, const alpm_list_t *node);
+alpm_list_t *alpm_list_previous(const alpm_list_t *list);
alpm_list_t *alpm_list_last(const alpm_list_t *list);
void *alpm_list_getdata(const alpm_list_t *entry);
diff --git a/lib/libalpm/remove.c b/lib/libalpm/remove.c
index 59374dcb..9b8517cb 100644
--- a/lib/libalpm/remove.c
+++ b/lib/libalpm/remove.c
@@ -329,7 +329,7 @@ int _alpm_upgraderemove_package(alpm_handle_t *handle,
_alpm_log(handle, ALPM_LOG_DEBUG, "removing %ld files\n", (unsigned long)filenum);
/* iterate through the list backwards, unlinking files */
- for(lp = alpm_list_last(files); lp; lp = alpm_list_previous(files, lp)) {
+ for(lp = alpm_list_last(files); lp; lp = alpm_list_previous(lp)) {
unlink_file(handle, oldpkg, lp->data, skip_remove, 0);
}
FREELIST(skip_remove);
@@ -406,7 +406,7 @@ int _alpm_remove_packages(alpm_handle_t *handle)
pkg_count, (pkg_count - targcount + 1));
/* iterate through the list backwards, unlinking files */
- for(lp = alpm_list_last(files); lp; lp = alpm_list_previous(files, lp)) {
+ for(lp = alpm_list_last(files); lp; lp = alpm_list_previous(lp)) {
int percent;
unlink_file(handle, info, lp->data, NULL, trans->flags & ALPM_TRANS_FLAG_NOSAVE);