[pacman-dev] [PATCH] Remove three unnecessary usages of alpm_list_count()

Dan McGee dan at archlinux.org
Fri Jun 24 01:41:09 EDT 2011


For the files count when loading from a package, we can keep a counter.
The two in the frontend were completely useless due to the fact that if
sync_dbs is non-NULL, alpm_list_count() will always be greater than 0.

Signed-off-by: Dan McGee <dan at archlinux.org>
---
 lib/libalpm/be_package.c |    5 +++--
 src/pacman/query.c       |    2 +-
 src/pacman/sync.c        |    2 +-
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/lib/libalpm/be_package.c b/lib/libalpm/be_package.c
index 1807051..748f27a 100644
--- a/lib/libalpm/be_package.c
+++ b/lib/libalpm/be_package.c
@@ -241,6 +241,7 @@ pmpkg_t *_alpm_pkg_load_internal(pmhandle_t *handle, const char *pkgfile,
 	struct archive_entry *entry;
 	pmpkg_t *newpkg = NULL;
 	struct stat st;
+	size_t files_count = 0;
 
 	if(pkgfile == NULL || strlen(pkgfile) == 0) {
 		RET_ERR(handle, PM_ERR_WRONG_ARGS, NULL);
@@ -328,6 +329,7 @@ pmpkg_t *_alpm_pkg_load_internal(pmhandle_t *handle, const char *pkgfile,
 		} else if(full) {
 			/* Keep track of all files for filelist generation */
 			newpkg->files = alpm_list_add(newpkg->files, strdup(entry_name));
+			files_count++;
 		}
 
 		if(archive_read_data_skip(archive)) {
@@ -366,8 +368,7 @@ pmpkg_t *_alpm_pkg_load_internal(pmhandle_t *handle, const char *pkgfile,
 	if(full) {
 		/* "checking for conflicts" requires a sorted list, ensure that here */
 		_alpm_log(handle, PM_LOG_DEBUG, "sorting package filelist for %s\n", pkgfile);
-		newpkg->files = alpm_list_msort(newpkg->files, alpm_list_count(newpkg->files),
-				_alpm_str_cmp);
+		newpkg->files = alpm_list_msort(newpkg->files, files_count, _alpm_str_cmp);
 		newpkg->infolevel = INFRQ_ALL;
 	} else {
 		/* get rid of any partial filelist we may have collected, it is invalid */
diff --git a/src/pacman/query.c b/src/pacman/query.c
index aa77907..62472cb 100644
--- a/src/pacman/query.c
+++ b/src/pacman/query.c
@@ -502,7 +502,7 @@ int pacman_query(alpm_list_t *targets)
 	if(config->op_q_foreign) {
 		/* ensure we have at least one valid sync db set up */
 		alpm_list_t *sync_dbs = alpm_option_get_syncdbs(config->handle);
-		if(sync_dbs == NULL || alpm_list_count(sync_dbs) == 0) {
+		if(sync_dbs == NULL) {
 			pm_printf(PM_LOG_ERROR, _("no usable package repositories configured.\n"));
 			return 1;
 		}
diff --git a/src/pacman/sync.c b/src/pacman/sync.c
index acb8a33..6c86bd1 100644
--- a/src/pacman/sync.c
+++ b/src/pacman/sync.c
@@ -911,7 +911,7 @@ int pacman_sync(alpm_list_t *targets)
 
 	/* ensure we have at least one valid sync db set up */
 	sync_dbs = alpm_option_get_syncdbs(config->handle);
-	if(sync_dbs == NULL || alpm_list_count(sync_dbs) == 0) {
+	if(sync_dbs == NULL) {
 		pm_printf(PM_LOG_ERROR, _("no usable package repositories configured.\n"));
 		return 1;
 	}
-- 
1.7.5.4



More information about the pacman-dev mailing list