diff options
author | Lucas De Marchi <lucas.demarchi@profusion.mobi> | 2011-10-21 15:58:24 -0200 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2011-10-22 12:18:14 +0200 |
commit | 1723fe2fb34a36178312a7d511f2bc47b1e56363 (patch) | |
tree | a14d3a2de531e9581e53fc4fca7d11d1622ec8c7 /test | |
parent | bb957be6a4a18124be437be78795e5b08ae13502 (diff) | |
download | bluez-1723fe2fb34a36178312a7d511f2bc47b1e56363.tar.gz |
Fix handling of dbus signals
We're previously leaking a D-Bus message and always returning that
the signal was not handled.
Diffstat (limited to 'test')
-rw-r--r-- | test/mpris-player.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/test/mpris-player.c b/test/mpris-player.c index 29bea46be..4592e5df7 100644 --- a/test/mpris-player.c +++ b/test/mpris-player.c @@ -549,7 +549,7 @@ static DBusHandlerResult properties_changed(DBusConnection *conn, if (!signal) { fprintf(stderr, "Unable to allocate new PropertyChanged" " signal\n"); - goto done; + goto err; } dbus_message_iter_init_append(signal, &entry); @@ -563,13 +563,19 @@ static DBusHandlerResult properties_changed(DBusConnection *conn, dbus_message_iter_next(&iter); if (parse_metadata(&iter, &metadata) < 0) - goto done; + goto err; dbus_message_iter_close_container(&entry, &metadata); dbus_connection_send(sys, signal, NULL); + dbus_message_unref(signal); + g_free(path); -done: + return DBUS_HANDLER_RESULT_HANDLED; + +err: + if (signal) + dbus_message_unref(signal); g_free(path); return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } @@ -607,7 +613,7 @@ static DBusHandlerResult session_filter(DBusConnection *conn, add_player(conn, name, new); } - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + return DBUS_HANDLER_RESULT_HANDLED; } static DBusHandlerResult system_filter(DBusConnection *conn, @@ -633,7 +639,7 @@ static DBusHandlerResult system_filter(DBusConnection *conn, __io_terminated = 1; } - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + return DBUS_HANDLER_RESULT_HANDLED; } static char *get_default_adapter(DBusConnection *conn) |