[lib] Fix timestamp_to_ms()

owl_timestamp_to_ms() did not convert properly the result to uint64_t.
This is now fixed, but time functions are still buggy, as we do not take
into account the length of tv_sec (owl_timestamp_round_to_ms() assumes
that it is 9-digit long).
This commit is contained in:
Matteo Cypriani 2011-03-14 14:30:44 +01:00
parent 4ff1d194e4
commit 3815ccae8b
1 changed files with 3 additions and 3 deletions

View File

@ -126,7 +126,7 @@ int owl_timestamp_now_ns(TIMESTAMP *now)
*/ */
void owl_timestamp_round_to_ms(TIMESTAMP *now) void owl_timestamp_round_to_ms(TIMESTAMP *now)
{ {
now->tv_nsec = now->tv_nsec / 1000000 * 1000000 ; now->tv_nsec = now->tv_nsec / 1000000u * 1000000u ;
} }
@ -151,7 +151,7 @@ TIMESTAMP owl_timeval_to_timestamp(const struct timeval d)
{ {
TIMESTAMP res ; TIMESTAMP res ;
res.tv_sec = d.tv_sec ; res.tv_sec = d.tv_sec ;
res.tv_nsec = d.tv_usec * 1000 ; res.tv_nsec = d.tv_usec * 1000u ;
return res ; return res ;
} }
@ -162,7 +162,7 @@ TIMESTAMP owl_timeval_to_timestamp(const struct timeval d)
*/ */
uint64_t owl_timestamp_to_ms(TIMESTAMP d) uint64_t owl_timestamp_to_ms(TIMESTAMP d)
{ {
return d.tv_sec * 1000 + d.tv_nsec / 1000000 ; return (uint64_t) d.tv_sec * 1000u + (uint64_t) d.tv_nsec / 1000000u ;
} }