diff options
author | Daniel Stone <daniel@fooishbar.org> | 2007-12-28 15:47:21 +0200 |
---|---|---|
committer | Daniel Stone <daniel@fooishbar.org> | 2007-12-28 15:51:36 +0200 |
commit | f44fd3f9e41bf467360ace93ef5b532d8f61fb2c (patch) | |
tree | 834148efba601e4a3238eb13d81b8c9e3848443a /config | |
parent | ae869fc7669764729e13fdd70149ed636753f2a3 (diff) |
Config: D-Bus: Don't leak timers
TimerCancel doesn't free the timer: you need TimerFree for that.
Diffstat (limited to 'config')
-rw-r--r-- | config/dbus-core.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/config/dbus-core.c b/config/dbus-core.c index eab72a530..9cf153076 100644 --- a/config/dbus-core.c +++ b/config/dbus-core.c @@ -76,7 +76,7 @@ teardown(void) struct config_dbus_core_hook *hook; if (bus_info.timer) { - TimerCancel(bus_info.timer); + TimerFree(bus_info.timer); bus_info.timer = NULL; } @@ -116,6 +116,8 @@ message_filter(DBusConnection *connection, DBusMessage *message, void *data) bus_info.connection = NULL; teardown(); + if (bus_info.timer) + TimerFree(bus_info.timer); bus_info.timer = TimerSet(NULL, 0, 1, reconnect_timer, NULL); return DBUS_HANDLER_RESULT_HANDLED; @@ -186,6 +188,7 @@ static CARD32 reconnect_timer(OsTimerPtr timer, CARD32 time, pointer arg) { if (connect_to_bus()) { + TimerFree(bus_info.timer); bus_info.timer = NULL; return 0; } |