From f966f3a8344cd96bd675c79a5c470c66920b890c Mon Sep 17 00:00:00 2001 From: Allan McRae Date: Wed, 8 Dec 2010 15:13:36 +1000 Subject: Use size_t for alpm_list sizes There is a lot of swtiching between size_t and int for alpm_list sizes in the codebase. Start converting these to all be size_t by adjusting the return type of alpm_list_count and fixing all additional warnings given by -Wconversion that are generated by this change. Dan: a few more small changes to ensure things compile, adjusting some printf format string characters to accommodate the larger size on x86_64. Signed-off-by: Allan McRae Signed-off-by: Dan McGee --- lib/libalpm/add.c | 4 ++-- lib/libalpm/alpm.h | 2 +- lib/libalpm/alpm_list.c | 8 ++++---- lib/libalpm/alpm_list.h | 6 +++--- lib/libalpm/be_local.c | 2 +- lib/libalpm/be_sync.c | 2 +- lib/libalpm/conflict.c | 4 ++-- lib/libalpm/diskspace.c | 6 +++--- lib/libalpm/remove.c | 8 ++++---- lib/libalpm/sync.c | 2 +- src/pacman/callback.c | 11 ++++++----- src/pacman/callback.h | 2 +- 12 files changed, 29 insertions(+), 28 deletions(-) diff --git a/lib/libalpm/add.c b/lib/libalpm/add.c index 9fc0381c..2f341eb0 100644 --- a/lib/libalpm/add.c +++ b/lib/libalpm/add.c @@ -477,7 +477,7 @@ static int extract_single_file(struct archive *archive, return(errors); } -static int commit_single_pkg(pmpkg_t *newpkg, int pkg_current, int pkg_count, +static int commit_single_pkg(pmpkg_t *newpkg, size_t pkg_current, size_t pkg_count, pmtrans_t *trans, pmdb_t *db) { int i, ret = 0, errors = 0; @@ -715,7 +715,7 @@ cleanup: int _alpm_upgrade_packages(pmtrans_t *trans, pmdb_t *db) { - int pkg_count, pkg_current; + size_t pkg_count, pkg_current; int skip_ldconfig = 0, ret = 0; alpm_list_t *targ; diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h index 37210cac..32a2856c 100644 --- a/lib/libalpm/alpm.h +++ b/lib/libalpm/alpm.h @@ -405,7 +405,7 @@ typedef void (*alpm_trans_cb_conv)(pmtransconv_t, void *, void *, void *, int *); /* Transaction Progress callback */ -typedef void (*alpm_trans_cb_progress)(pmtransprog_t, const char *, int, int, int); +typedef void (*alpm_trans_cb_progress)(pmtransprog_t, const char *, int, size_t, size_t); int alpm_trans_get_flags(void); alpm_list_t * alpm_trans_get_add(void); diff --git a/lib/libalpm/alpm_list.c b/lib/libalpm/alpm_list.c index b7b2a89f..3f9525e8 100644 --- a/lib/libalpm/alpm_list.c +++ b/lib/libalpm/alpm_list.c @@ -269,7 +269,7 @@ alpm_list_t SYMEXPORT *alpm_list_mmerge(alpm_list_t *left, alpm_list_t *right, a * * @return the resultant list */ -alpm_list_t SYMEXPORT *alpm_list_msort(alpm_list_t *list, int n, alpm_list_fn_cmp fn) +alpm_list_t SYMEXPORT *alpm_list_msort(alpm_list_t *list, size_t n, alpm_list_fn_cmp fn) { if (n > 1) { alpm_list_t *left = list; @@ -511,7 +511,7 @@ inline alpm_list_t SYMEXPORT *alpm_list_first(const alpm_list_t *list) * * @return an alpm_list_t node for index `n` */ -alpm_list_t SYMEXPORT *alpm_list_nth(const alpm_list_t *list, int n) +alpm_list_t SYMEXPORT *alpm_list_nth(const alpm_list_t *list, size_t n) { const alpm_list_t *i = list; while(n--) { @@ -574,9 +574,9 @@ void SYMEXPORT *alpm_list_getdata(const alpm_list_t *node) * * @return the number of list items */ -int SYMEXPORT alpm_list_count(const alpm_list_t *list) +size_t SYMEXPORT alpm_list_count(const alpm_list_t *list) { - unsigned int i = 0; + size_t i = 0; const alpm_list_t *lp = list; while(lp) { ++i; diff --git a/lib/libalpm/alpm_list.h b/lib/libalpm/alpm_list.h index c52742c9..ee85a5dd 100644 --- a/lib/libalpm/alpm_list.h +++ b/lib/libalpm/alpm_list.h @@ -56,7 +56,7 @@ alpm_list_t *alpm_list_add(alpm_list_t *list, void *data); alpm_list_t *alpm_list_add_sorted(alpm_list_t *list, void *data, alpm_list_fn_cmp fn); alpm_list_t *alpm_list_join(alpm_list_t *first, alpm_list_t *second); alpm_list_t *alpm_list_mmerge(alpm_list_t *left, alpm_list_t *right, alpm_list_fn_cmp fn); -alpm_list_t *alpm_list_msort(alpm_list_t *list, int n, alpm_list_fn_cmp fn); +alpm_list_t *alpm_list_msort(alpm_list_t *list, size_t n, alpm_list_fn_cmp fn); alpm_list_t *alpm_list_remove(alpm_list_t *haystack, const void *needle, alpm_list_fn_cmp fn, void **data); alpm_list_t *alpm_list_remove_str(alpm_list_t *haystack, const char *needle, char **data); alpm_list_t *alpm_list_remove_dupes(const alpm_list_t *list); @@ -67,13 +67,13 @@ alpm_list_t *alpm_list_reverse(alpm_list_t *list); /* item accessors */ alpm_list_t *alpm_list_first(const alpm_list_t *list); -alpm_list_t *alpm_list_nth(const alpm_list_t *list, int n); +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_last(const alpm_list_t *list); void *alpm_list_getdata(const alpm_list_t *entry); /* misc */ -int alpm_list_count(const alpm_list_t *list); +size_t alpm_list_count(const alpm_list_t *list); void *alpm_list_find(const alpm_list_t *haystack, const void *needle, alpm_list_fn_cmp fn); void *alpm_list_find_ptr(const alpm_list_t *haystack, const void *needle); char *alpm_list_find_str(const alpm_list_t *haystack, const char *needle); diff --git a/lib/libalpm/be_local.c b/lib/libalpm/be_local.c index 109edf49..d0662d91 100644 --- a/lib/libalpm/be_local.c +++ b/lib/libalpm/be_local.c @@ -443,7 +443,7 @@ static int local_db_populate(pmdb_t *db) } closedir(dbdir); - db->pkgcache = alpm_list_msort(db->pkgcache, count, _alpm_pkg_cmp); + db->pkgcache = alpm_list_msort(db->pkgcache, (size_t)count, _alpm_pkg_cmp); return(count); } diff --git a/lib/libalpm/be_sync.c b/lib/libalpm/be_sync.c index 81f3e46e..b11499c4 100644 --- a/lib/libalpm/be_sync.c +++ b/lib/libalpm/be_sync.c @@ -212,7 +212,7 @@ static int sync_db_populate(pmdb_t *db) } } - db->pkgcache = alpm_list_msort(db->pkgcache, count, _alpm_pkg_cmp); + db->pkgcache = alpm_list_msort(db->pkgcache, (size_t)count, _alpm_pkg_cmp); archive_read_finish(archive); return(count); diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c index 11422272..0e4d6df2 100644 --- a/lib/libalpm/conflict.c +++ b/lib/libalpm/conflict.c @@ -402,8 +402,8 @@ alpm_list_t *_alpm_db_find_fileconflicts(pmdb_t *db, pmtrans_t *trans, alpm_list_t *upgrade, alpm_list_t *remove) { alpm_list_t *i, *j, *conflicts = NULL; - int numtargs = alpm_list_count(upgrade); - int current; + size_t numtargs = alpm_list_count(upgrade); + size_t current; ALPM_LOG_FUNC; diff --git a/lib/libalpm/diskspace.c b/lib/libalpm/diskspace.c index 624cd274..5c9f74e5 100644 --- a/lib/libalpm/diskspace.c +++ b/lib/libalpm/diskspace.c @@ -243,11 +243,11 @@ cleanup: int _alpm_check_diskspace(pmtrans_t *trans, pmdb_t *db_local) { alpm_list_t *mount_points, *i; - int replaces = 0, abort = 0; + size_t replaces = 0, current = 0; + int abort = 0; alpm_list_t *targ; pmpkg_t *pkg; - int numtargs = alpm_list_count(trans->add); - int current = 0; + size_t numtargs = alpm_list_count(trans->add); mount_points = mount_point_list(); if(mount_points == NULL) { diff --git a/lib/libalpm/remove.c b/lib/libalpm/remove.c index be349977..bcc8dc45 100644 --- a/lib/libalpm/remove.c +++ b/lib/libalpm/remove.c @@ -369,7 +369,7 @@ int _alpm_remove_packages(pmtrans_t *trans, pmdb_t *db) { pmpkg_t *info; alpm_list_t *targ, *lp; - int pkg_count; + size_t pkg_count; ALPM_LOG_FUNC; @@ -383,7 +383,7 @@ int _alpm_remove_packages(pmtrans_t *trans, pmdb_t *db) char scriptlet[PATH_MAX]; info = (pmpkg_t*)targ->data; const char *pkgname = NULL; - int targcount = alpm_list_count(targ); + size_t targcount = alpm_list_count(targ); if(handle->trans->state == STATE_INTERRUPTED) { return(0); @@ -414,9 +414,9 @@ int _alpm_remove_packages(pmtrans_t *trans, pmdb_t *db) } } - int filenum = alpm_list_count(files); + size_t filenum = alpm_list_count(files); alpm_list_t *newfiles; - _alpm_log(PM_LOG_DEBUG, "removing %d files\n", filenum); + _alpm_log(PM_LOG_DEBUG, "removing %ld files\n", (unsigned long)filenum); /* init progress bar */ PROGRESS(trans, PM_TRANS_PROGRESS_REMOVE_START, info->name, 0, diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c index ef77a8ac..dce1daff 100644 --- a/lib/libalpm/sync.c +++ b/lib/libalpm/sync.c @@ -822,7 +822,7 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data) { alpm_list_t *i, *j, *files = NULL; alpm_list_t *deltas = NULL; - int replaces = 0; + size_t replaces = 0; int errors = 0; const char *cachedir = NULL; int ret = -1; diff --git a/src/pacman/callback.c b/src/pacman/callback.c index 60914012..79d3dc40 100644 --- a/src/pacman/callback.c +++ b/src/pacman/callback.c @@ -325,13 +325,14 @@ void cb_trans_conv(pmtransconv_t event, void *data1, void *data2, /* callback to handle display of transaction progress */ void cb_trans_progress(pmtransprog_t event, const char *pkgname, int percent, - int howmany, int remain) + size_t howmany, size_t current) { float timediff; /* size of line to allocate for text printing (e.g. not progressbar) */ int infolen; - int tmp, digits, textlen; + int digits, textlen; + size_t tmp; char *opr = NULL; /* used for wide character width determination and printing */ int len, wclen, wcwid, padwid; @@ -402,7 +403,7 @@ void cb_trans_progress(pmtransprog_t event, const char *pkgname, int percent, * done here to figure out the actual number of screen columns used * by the output, and then pad it accordingly so we fill the terminal. */ - /* len = opr len + pkgname len (if available) + space + null */ + /* len = opr len + pkgname len (if available) + space + null */ len = strlen(opr) + ((pkgname) ? strlen(pkgname) : 0) + 2; wcstr = calloc(len, sizeof(wchar_t)); /* print our strings to the alloc'ed memory */ @@ -434,8 +435,8 @@ void cb_trans_progress(pmtransprog_t event, const char *pkgname, int percent, } - printf("(%*d/%*d) %ls%-*s", digits, remain, digits, howmany, - wcstr, padwid, ""); + printf("(%*ld/%*ld) %ls%-*s", digits, (unsigned long)current, + digits, (unsigned long)howmany, wcstr, padwid, ""); free(wcstr); diff --git a/src/pacman/callback.h b/src/pacman/callback.h index 670d03a6..f5bf1c1d 100644 --- a/src/pacman/callback.h +++ b/src/pacman/callback.h @@ -33,7 +33,7 @@ void cb_trans_conv(pmtransconv_t event, void *data1, void *data2, /* callback to handle display of transaction progress */ void cb_trans_progress(pmtransprog_t event, const char *pkgname, int percent, - int howmany, int remain); + size_t howmany, size_t remain); /* callback to handle receipt of total download value */ void cb_dl_total(off_t total); -- cgit v1.2.3-70-g09d2