diff options
Diffstat (limited to 'lib/libalpm')
-rw-r--r-- | lib/libalpm/conflict.c | 4 | ||||
-rw-r--r-- | lib/libalpm/db.c | 2 | ||||
-rw-r--r-- | lib/libalpm/deps.c | 5 | ||||
-rw-r--r-- | lib/libalpm/diskspace.c | 20 | ||||
-rw-r--r-- | lib/libalpm/dload.c | 2 | ||||
-rw-r--r-- | lib/libalpm/remove.c | 2 | ||||
-rw-r--r-- | lib/libalpm/util.c | 9 |
7 files changed, 23 insertions, 21 deletions
diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c index 0e4d6df2..0eaf4373 100644 --- a/lib/libalpm/conflict.c +++ b/lib/libalpm/conflict.c @@ -425,8 +425,8 @@ alpm_list_t *_alpm_db_find_fileconflicts(pmdb_t *db, pmtrans_t *trans, continue; } - double percent = (double)current / numtargs; - PROGRESS(trans, PM_TRANS_PROGRESS_CONFLICTS_START, "", (percent * 100), + double percent = (double)current / (double)numtargs; + PROGRESS(trans, PM_TRANS_PROGRESS_CONFLICTS_START, "", (int)(percent * 100), numtargs, current); /* CHECK 1: check every target against every target */ _alpm_log(PM_LOG_DEBUG, "searching for file conflicts: %s\n", diff --git a/lib/libalpm/db.c b/lib/libalpm/db.c index c1be7ec7..bf9a70d4 100644 --- a/lib/libalpm/db.c +++ b/lib/libalpm/db.c @@ -172,7 +172,7 @@ int SYMEXPORT alpm_db_setserver(pmdb_t *db, const char *url) alpm_list_t *i; int found = 0; char *newurl; - int len = 0; + size_t len = 0; ALPM_LOG_FUNC; diff --git a/lib/libalpm/deps.c b/lib/libalpm/deps.c index 1bf2e87f..3d4b1df4 100644 --- a/lib/libalpm/deps.c +++ b/lib/libalpm/deps.c @@ -350,8 +350,9 @@ int _alpm_depcmp(pmpkg_t *pkg, pmdepend_t *dep) /* This is a bit tricker than the old code for performance reasons. To * prevent the need to copy and duplicate strings, strncmp only the name * portion if they are the same length, since there is a version and - * operator in play here. */ - size_t namelen = provver - provision; + * operator in play here. Cast is to silence sign conversion warning; + * we know provver >= provision if we are here. */ + size_t namelen = (size_t)(provver - provision); provver += 1; satisfy = (strlen(dep->name) == namelen && strncmp(provision, dep->name, namelen) == 0 diff --git a/lib/libalpm/diskspace.c b/lib/libalpm/diskspace.c index 5c9f74e5..87dca84f 100644 --- a/lib/libalpm/diskspace.c +++ b/lib/libalpm/diskspace.c @@ -178,7 +178,7 @@ static int calculate_removed_size(const alpm_list_t *mount_points, } data = mp->data; - data->blocks_needed -= ceil((double)(st.st_size) / + data->blocks_needed -= (long)ceil((double)(st.st_size) / (double)(data->fsp.f_bsize)); data->used = 1; } @@ -229,7 +229,7 @@ static int calculate_installed_size(const alpm_list_t *mount_points, } data = mp->data; - data->blocks_needed += ceil((double)(archive_entry_size(entry)) / + data->blocks_needed += (long)ceil((double)(archive_entry_size(entry)) / (double)(data->fsp.f_bsize)); data->used = 1; } @@ -243,12 +243,12 @@ cleanup: int _alpm_check_diskspace(pmtrans_t *trans, pmdb_t *db_local) { alpm_list_t *mount_points, *i; - size_t replaces = 0, current = 0; + size_t replaces = 0, current = 0, numtargs; int abort = 0; alpm_list_t *targ; pmpkg_t *pkg; - size_t numtargs = alpm_list_count(trans->add); + numtargs = alpm_list_count(trans->add); mount_points = mount_point_list(); if(mount_points == NULL) { _alpm_log(PM_LOG_ERROR, _("could not determine filesystem mount points")); @@ -259,8 +259,8 @@ int _alpm_check_diskspace(pmtrans_t *trans, pmdb_t *db_local) if(replaces) { numtargs += replaces; for(targ = trans->remove; targ; targ = targ->next, current++) { - double percent = (double)current / numtargs; - PROGRESS(trans, PM_TRANS_PROGRESS_DISKSPACE_START, "", (percent * 100), + double percent = (double)current / (double)numtargs; + PROGRESS(trans, PM_TRANS_PROGRESS_DISKSPACE_START, "", (int)(percent * 100), numtargs, current); pkg = targ->data; @@ -269,8 +269,8 @@ int _alpm_check_diskspace(pmtrans_t *trans, pmdb_t *db_local) } for(targ = trans->add; targ; targ = targ->next, current++) { - double percent = (double)current / numtargs; - PROGRESS(trans, PM_TRANS_PROGRESS_DISKSPACE_START, "", (percent * 100), + double percent = (double)current / (double)numtargs; + PROGRESS(trans, PM_TRANS_PROGRESS_DISKSPACE_START, "", (int)(percent * 100), numtargs, current); pkg = targ->data; @@ -295,8 +295,8 @@ int _alpm_check_diskspace(pmtrans_t *trans, pmdb_t *db_local) alpm_mountpoint_t *data = i->data; if(data->used == 1) { /* cushion is roughly min(5% capacity, 20MiB) */ - long fivepc = (data->fsp.f_blocks / 20) + 1; - long twentymb = (20 * 1024 * 1024 / data->fsp.f_bsize) + 1; + long fivepc = ((long)data->fsp.f_blocks / 20) + 1; + long twentymb = (20 * 1024 * 1024 / (long)data->fsp.f_bsize) + 1; long cushion = fivepc < twentymb ? fivepc : twentymb; _alpm_log(PM_LOG_DEBUG, "partition %s, needed %ld, cushion %ld, free %ld\n", diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c index e4b946d3..cb6d000c 100644 --- a/lib/libalpm/dload.c +++ b/lib/libalpm/dload.c @@ -247,7 +247,7 @@ static int download_internal(const char *url, const char *localpath, while((nread = fetchIO_read(dlf, buffer, PM_DLBUF_LEN)) > 0) { check_stop(); size_t nwritten = 0; - nwritten = fwrite(buffer, 1, nread, localf); + nwritten = fwrite(buffer, 1, (size_t)nread, localf); if((nwritten != (size_t)nread) || ferror(localf)) { pm_errno = PM_ERR_RETRIEVE; _alpm_log(PM_LOG_ERROR, _("error writing to file '%s': %s\n"), diff --git a/lib/libalpm/remove.c b/lib/libalpm/remove.c index bcc8dc45..e1249fd6 100644 --- a/lib/libalpm/remove.c +++ b/lib/libalpm/remove.c @@ -431,7 +431,7 @@ int _alpm_remove_packages(pmtrans_t *trans, pmdb_t *db) /* update progress bar after each file */ percent = (double)position / (double)filenum; PROGRESS(trans, PM_TRANS_PROGRESS_REMOVE_START, info->name, - (double)(percent * 100), pkg_count, + (int)(percent * 100), pkg_count, (pkg_count - targcount + 1)); position++; } diff --git a/lib/libalpm/util.c b/lib/libalpm/util.c index 5f7512fb..2eee5e4a 100644 --- a/lib/libalpm/util.c +++ b/lib/libalpm/util.c @@ -668,7 +668,7 @@ int _alpm_lstat(const char *path, struct stat *buf) { int ret; char *newpath = strdup(path); - int len = strlen(newpath); + size_t len = strlen(newpath); /* strip the trailing slash if one exists */ if(len != 0 && newpath[len - 1] == '/') { @@ -815,7 +815,8 @@ int _alpm_archive_fgets(struct archive *a, struct archive_read_buffer *b) b->line_size = b->block_size + 1; b->line_offset = b->line; } else { - size_t needed = (b->line_offset - b->line) + (i - b->block_offset) + 1; + size_t needed = (size_t)((b->line_offset - b->line) + + (i - b->block_offset) + 1); if(needed > b->max_line_size) { RET_ERR(PM_ERR_MEMORY, -1); } @@ -832,7 +833,7 @@ int _alpm_archive_fgets(struct archive *a, struct archive_read_buffer *b) } if(done) { - size_t len = i - b->block_offset; + size_t len = (size_t)(i - b->block_offset); memcpy(b->line_offset, b->block_offset, len); b->line_offset[len] = '\0'; b->block_offset = ++i; @@ -840,7 +841,7 @@ int _alpm_archive_fgets(struct archive *a, struct archive_read_buffer *b) return(ARCHIVE_OK); } else { /* we've looked through the whole block but no newline, copy it */ - size_t len = b->block + b->block_size - b->block_offset; + size_t len = (size_t)(b->block + b->block_size - b->block_offset); memcpy(b->line_offset, b->block_offset, len); b->line_offset += len; b->block_offset = i; |