On 08/12/10 17:07, Allan McRae wrote:
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.
Signed-off-by: Allan McRae<allan@archlinux.org> ---
Snip. A couple of queries/comments I had:
--- 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);
Should the remaining int (percentage complete) go to a size_t here too for consistency? <snip>
--- a/lib/libalpm/be_local.c +++ b/lib/libalpm/be_local.c @@ -422,7 +422,7 @@ int _alpm_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 b6c9937..5951f2f 100644 --- a/lib/libalpm/be_sync.c +++ b/lib/libalpm/be_sync.c @@ -191,7 +191,7 @@ int _alpm_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);
I know these are plain "cheating" fixes, and probably create warnings about converting from signed to unsigned when some warning flag is used, but making the actual variables size_t is not particularly possible without bigger changes. Allan