util: avoid casting to long in UTI_DoubleToTimeval()
This commit is contained in:
parent
fead915b45
commit
4bbc768652
1 changed files with 4 additions and 6 deletions
10
util.c
10
util.c
|
@ -119,13 +119,11 @@ UTI_TimevalToDouble(struct timeval *tv)
|
||||||
void
|
void
|
||||||
UTI_DoubleToTimeval(double a, struct timeval *b)
|
UTI_DoubleToTimeval(double a, struct timeval *b)
|
||||||
{
|
{
|
||||||
long int_part;
|
|
||||||
double frac_part;
|
double frac_part;
|
||||||
int_part = (long)(a);
|
|
||||||
frac_part = 1.0e6 * (a - (double)(int_part));
|
b->tv_sec = a;
|
||||||
frac_part = frac_part > 0 ? frac_part + 0.5 : frac_part - 0.5;
|
frac_part = 1.0e6 * (a - b->tv_sec);
|
||||||
b->tv_sec = int_part;
|
b->tv_usec = frac_part > 0 ? frac_part + 0.5 : frac_part - 0.5;
|
||||||
b->tv_usec = (long)frac_part;
|
|
||||||
UTI_NormaliseTimeval(b);
|
UTI_NormaliseTimeval(b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue