diff options
Diffstat (limited to 'gdbus')
-rw-r--r-- | gdbus/watch.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gdbus/watch.c b/gdbus/watch.c index 9e4f994a..ed3bc429 100644 --- a/gdbus/watch.c +++ b/gdbus/watch.c @@ -593,12 +593,16 @@ static gboolean update_service(void *user_data) { struct service_data *data = user_data; struct filter_callback *cb = data->callback; + DBusConnection *conn; update_name_cache(data->name, data->owner); + conn = dbus_connection_ref(data->conn); + service_data_free(data); + if (cb->conn_func) - cb->conn_func(data->conn, cb->user_data); + cb->conn_func(conn, cb->user_data); - service_data_free(data); + dbus_connection_unref(conn); return FALSE; } |