util: avoid casting to long in UTI_DoubleToTimeval()

This commit is contained in:
Miroslav Lichvar 2017-12-05 09:44:59 +01:00
parent fead915b45
commit 4bbc768652

10
util.c
View file

@ -119,13 +119,11 @@ UTI_TimevalToDouble(struct timeval *tv)
void
UTI_DoubleToTimeval(double a, struct timeval *b)
{
long int_part;
double frac_part;
int_part = (long)(a);
frac_part = 1.0e6 * (a - (double)(int_part));
frac_part = frac_part > 0 ? frac_part + 0.5 : frac_part - 0.5;
b->tv_sec = int_part;
b->tv_usec = (long)frac_part;
b->tv_sec = a;
frac_part = 1.0e6 * (a - b->tv_sec);
b->tv_usec = frac_part > 0 ? frac_part + 0.5 : frac_part - 0.5;
UTI_NormaliseTimeval(b);
}