summaryrefslogtreecommitdiffstats
path: root/src/pulse
diff options
context:
space:
mode:
authorMaarten Bosmans <mkbosmans@gmail.com>2011-03-15 21:06:46 +0100
committerMaarten Bosmans <mkbosmans@gmail.com>2011-03-19 13:41:05 +0100
commitb599d3c836c7a5c4c665339279a47da8be914789 (patch)
tree53c8fe9fd4711a719991593c240125158bbb18ae /src/pulse
parentc470680e1ba008c05c13231dbbafd69cb9330488 (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/pulse')
-rw-r--r--src/pulse/mainloop.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/pulse/mainloop.c b/src/pulse/mainloop.c
index 8c261381..f02d31a1 100644
--- a/src/pulse/mainloop.c
+++ b/src/pulse/mainloop.c
@@ -151,7 +151,7 @@ static pa_io_event_flags_t map_flags_from_libc(short flags) {
/* IO events */
static pa_io_event* mainloop_io_new(
- pa_mainloop_api*a,
+ pa_mainloop_api *a,
int fd,
pa_io_event_flags_t events,
pa_io_event_cb_t callback,
@@ -244,7 +244,7 @@ static void mainloop_io_set_destroy(pa_io_event *e, pa_io_event_destroy_cb_t cal
/* Defer events */
static pa_defer_event* mainloop_defer_new(
- pa_mainloop_api*a,
+ pa_mainloop_api *a,
pa_defer_event_cb_t callback,
void *userdata) {
@@ -331,7 +331,7 @@ static pa_usec_t make_rt(const struct timeval *tv, pa_bool_t *use_rtclock) {
}
static pa_time_event* mainloop_time_new(
- pa_mainloop_api*a,
+ pa_mainloop_api *a,
const struct timeval *tv,
pa_time_event_cb_t callback,
void *userdata) {
@@ -355,7 +355,7 @@ static pa_time_event* mainloop_time_new(
if ((e->enabled = (t != PA_USEC_INVALID))) {
e->time = t;
- e->use_rtclock= use_rtclock;
+ e->use_rtclock = use_rtclock;
m->n_enabled_time_events++;
@@ -438,7 +438,7 @@ static void mainloop_time_set_destroy(pa_time_event *e, pa_time_event_destroy_cb
/* quit() */
-static void mainloop_quit(pa_mainloop_api*a, int retval) {
+static void mainloop_quit(pa_mainloop_api *a, int retval) {
pa_mainloop *m;
pa_assert(a);
@@ -591,7 +591,7 @@ static void cleanup_defer_events(pa_mainloop *m, pa_bool_t force) {
}
-void pa_mainloop_free(pa_mainloop* m) {
+void pa_mainloop_free(pa_mainloop *m) {
pa_assert(m);
cleanup_io_events(m, TRUE);
@@ -848,10 +848,15 @@ quit:
}
static int usec_to_timeout(pa_usec_t u) {
+ int timeout;
+
if (u == PA_USEC_INVALID)
return -1;
- return (u + PA_USEC_PER_MSEC - 1) / PA_USEC_PER_MSEC;
+ timeout = (u + PA_USEC_PER_MSEC - 1) / PA_USEC_PER_MSEC;
+ pa_assert(timeout >= 0);
+
+ return timeout;
}
int pa_mainloop_poll(pa_mainloop *m) {
@@ -988,7 +993,7 @@ void pa_mainloop_quit(pa_mainloop *m, int retval) {
pa_mainloop_wakeup(m);
}
-pa_mainloop_api* pa_mainloop_get_api(pa_mainloop*m) {
+pa_mainloop_api* pa_mainloop_get_api(pa_mainloop *m) {
pa_assert(m);
return &m->api;
@@ -1001,7 +1006,7 @@ void pa_mainloop_set_poll_func(pa_mainloop *m, pa_poll_func poll_func, void *use
m->poll_func_userdata = userdata;
}
-pa_bool_t pa_mainloop_is_our_api(pa_mainloop_api*m) {
+pa_bool_t pa_mainloop_is_our_api(pa_mainloop_api *m) {
pa_assert(m);
return m->io_new == mainloop_io_new;