[pacman-dev] [PATCH 1/3] dload_progress_cb: cast values to off_t up front
Dave Reisner
d at falconindy.com
Sun Jan 25 17:30:32 UTC 2015
On Jan 25, 2015 12:25 PM, "Andrew Gregory" <andrew.gregory.8 at gmail.com>
wrote:
>
> We only ever use them as off_t, so do the conversion early and avoid the
> need for multiple casts and DOUBLE_EQ.
I'd rather we use the newer XFERINFOFUNCTION (might have the name wrong)
which passes these as curl_off_t instead of double.
> Signed-off-by: Andrew Gregory <andrew.gregory.8 at gmail.com>
> ---
> lib/libalpm/dload.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c
> index c5186be..cae4b7c 100644
> --- a/lib/libalpm/dload.c
> +++ b/lib/libalpm/dload.c
> @@ -94,7 +94,7 @@ static int dload_progress_cb(void *file, double
dltotal, double dlnow,
> double UNUSED ultotal, double UNUSED ulnow)
> {
> struct dload_payload *payload = (struct dload_payload *)file;
> - off_t current_size, total_size;
> + off_t current_size, total_size, xfer = dlnow, total = dltotal;
>
> /* avoid displaying progress bar for redirects with a body */
> if(payload->respcode >= 300) {
> @@ -106,7 +106,7 @@ static int dload_progress_cb(void *file, double
dltotal, double dlnow,
> return 1;
> }
>
> - current_size = payload->initial_size + (off_t)dlnow;
> + current_size = payload->initial_size + xfer;
>
> /* is our filesize still under any set limit? */
> if(payload->max_size && current_size > payload->max_size) {
> @@ -119,21 +119,21 @@ static int dload_progress_cb(void *file, double
dltotal, double dlnow,
> return 0;
> }
>
> - total_size = payload->initial_size + (off_t)dltotal;
> + total_size = payload->initial_size + total;
>
> - if(DOUBLE_EQ(dltotal, 0.0) || payload->prevprogress ==
total_size) {
> + if(total == 0 || payload->prevprogress == total_size) {
> return 0;
> }
>
> /* initialize the progress bar here to avoid displaying it when
> * a repo is up to date and nothing gets downloaded */
> if(payload->prevprogress == 0) {
> - payload->handle->dlcb(payload->remote_name, 0,
(off_t)dltotal);
> + payload->handle->dlcb(payload->remote_name, 0, total);
> }
>
> /* do NOT include initial_size since it wasn't part of the
package's
> * download_size (nor included in the total download size
callback) */
> - payload->handle->dlcb(payload->remote_name, (off_t)dlnow,
(off_t)dltotal);
> + payload->handle->dlcb(payload->remote_name, xfer, total);
>
> payload->prevprogress = current_size;
>
> --
> 2.2.1
More information about the pacman-dev
mailing list