diff options
author | Maarten Bosmans <mkbosmans@gmail.com> | 2011-03-15 21:06:46 +0100 |
---|---|---|
committer | Maarten Bosmans <mkbosmans@gmail.com> | 2011-03-19 13:41:05 +0100 |
commit | b599d3c836c7a5c4c665339279a47da8be914789 (patch) | |
tree | 53c8fe9fd4711a719991593c240125158bbb18ae /src/pulsecore/core-rtclock.c | |
parent | c470680e1ba008c05c13231dbbafd69cb9330488 (diff) |
Fix pa_rtclock_from_wallclock
The HAVE_CLOCK_GETTIME macro protects timespec and related functions, nothing of which is used in
pa_rtclock_from_wallclock. And silently just not converting was not the proper solution anyway.
Also add an assert in pulse/mainloop.c to report the integer overflow that was triggered by the wrong
pa_rtclock_from_wallclock. Without the assert, debugging was painful.
Diffstat (limited to 'src/pulsecore/core-rtclock.c')
-rw-r--r-- | src/pulsecore/core-rtclock.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/src/pulsecore/core-rtclock.c b/src/pulsecore/core-rtclock.c index ac2c097a..331ac112 100644 --- a/src/pulsecore/core-rtclock.c +++ b/src/pulsecore/core-rtclock.c @@ -182,15 +182,13 @@ void pa_rtclock_hrtimer_enable(void) { } struct timeval* pa_rtclock_from_wallclock(struct timeval *tv) { - -#ifdef HAVE_CLOCK_GETTIME struct timeval wc_now, rt_now; + pa_assert(tv); + pa_gettimeofday(&wc_now); pa_rtclock_get(&rt_now); - pa_assert(tv); - /* pa_timeval_sub() saturates on underflow! */ if (pa_timeval_cmp(&wc_now, tv) < 0) @@ -199,7 +197,6 @@ struct timeval* pa_rtclock_from_wallclock(struct timeval *tv) { pa_timeval_sub(&rt_now, pa_timeval_diff(&wc_now, tv)); *tv = rt_now; -#endif return tv; } @@ -232,15 +229,13 @@ struct timespec* pa_timespec_store(struct timespec *ts, pa_usec_t v) { #endif static struct timeval* wallclock_from_rtclock(struct timeval *tv) { - -#ifdef HAVE_CLOCK_GETTIME struct timeval wc_now, rt_now; + pa_assert(tv); + pa_gettimeofday(&wc_now); pa_rtclock_get(&rt_now); - pa_assert(tv); - /* pa_timeval_sub() saturates on underflow! */ if (pa_timeval_cmp(&rt_now, tv) < 0) @@ -249,7 +244,6 @@ static struct timeval* wallclock_from_rtclock(struct timeval *tv) { pa_timeval_sub(&wc_now, pa_timeval_diff(&rt_now, tv)); *tv = wc_now; -#endif return tv; } |