Loading lib/progress.c +15 −4 Original line number Diff line number Diff line Loading @@ -301,10 +301,21 @@ int Curl_pgrsUpdate(struct connectdata *conn) if(0 == span_ms) span_ms=1; /* at least one millisecond MUST have passed */ /* Calculate the average speed the last 'countindex' seconds */ /* Calculate the average speed the last 'span_ms' milliseconds */ { curl_off_t amount = data->progress.speeder[nowindex]- data->progress.speeder[checkindex]; if(amount > 0xffffffff/1000) /* the 'amount' value is bigger than would fit in 32 bits if multiplied with 1000, so we use the double math for this */ data->progress.current_speed = (curl_off_t) (data->progress.speeder[nowindex]- data->progress.speeder[checkindex])/((double)span_ms/1000); (amount/(span_ms/1000.0)); else /* the 'amount' value is small enough to fit within 32 bits even when multiplied with 1000 */ data->progress.current_speed = amount*1000/span_ms; } } else /* the first second we use the main average */ Loading Loading
lib/progress.c +15 −4 Original line number Diff line number Diff line Loading @@ -301,10 +301,21 @@ int Curl_pgrsUpdate(struct connectdata *conn) if(0 == span_ms) span_ms=1; /* at least one millisecond MUST have passed */ /* Calculate the average speed the last 'countindex' seconds */ /* Calculate the average speed the last 'span_ms' milliseconds */ { curl_off_t amount = data->progress.speeder[nowindex]- data->progress.speeder[checkindex]; if(amount > 0xffffffff/1000) /* the 'amount' value is bigger than would fit in 32 bits if multiplied with 1000, so we use the double math for this */ data->progress.current_speed = (curl_off_t) (data->progress.speeder[nowindex]- data->progress.speeder[checkindex])/((double)span_ms/1000); (amount/(span_ms/1000.0)); else /* the 'amount' value is small enough to fit within 32 bits even when multiplied with 1000 */ data->progress.current_speed = amount*1000/span_ms; } } else /* the first second we use the main average */ Loading