static void media_transport_free(void *data) { struct media_transport *transport = data; GSList *l = transport->owners; while (l) { struct media_owner *owner = l->data; l = l->next; media_transport_remove(transport, owner); } g_slist_free(transport->owners); if (transport->session) avdtp_unref(transport->session); if (transport->nrec_id) headset_remove_nrec_cb(transport->device, transport->nrec_id); if (transport->conn) dbus_connection_unref(transport->conn); g_free(transport->configuration); g_free(transport->path); g_free(transport); }
static void destroy_headset(void *data) { struct headset_transport *headset = data; if (headset->nrec_id > 0) headset_remove_nrec_cb(headset->device, headset->nrec_id); g_free(headset); }