summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLucas De Marchi <lucas.demarchi@profusion.mobi>2011-10-21 15:58:24 -0200
committerJohan Hedberg <johan.hedberg@intel.com>2011-10-22 12:18:14 +0200
commit1723fe2fb34a36178312a7d511f2bc47b1e56363 (patch)
treea14d3a2de531e9581e53fc4fca7d11d1622ec8c7 /test
parentbb957be6a4a18124be437be78795e5b08ae13502 (diff)
downloadbluez-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.c16
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)