return -1;
}
- /* release transport if exist */
- if (u->transport) {
- bt_transport_release(u);
- pa_xfree(u->transport);
- u->transport = NULL;
- }
-
/* check if profile has a transport */
t = pa_bluetooth_device_get_transport(d, u->profile);
if (t == NULL) {
u->hsp.nrec_changed_slot = NULL;
}
+ if (u->transport) {
+ bt_transport_release(u);
+ pa_xfree(u->transport);
+ u->transport = NULL;
+ }
+
if (u->sink) {
if (u->profile == PROFILE_HSP) {
k = pa_sprintf_malloc("bluetooth-device@%p", (void*) u->sink);
stop_thread(u);
- if (u->profile != PROFILE_OFF && u->transport) {
- bt_transport_release(u);
- pa_xfree(u->transport);
- u->transport = NULL;
- }
-
if (USE_SCO_OVER_PCM(u))
restore_sco_volume_callbacks(u);
pa_xfree(u->address);
pa_xfree(u->path);
- if (u->transport) {
- bt_transport_release(u);
- pa_xfree(u->transport);
- }
-
if (u->discovery)
pa_bluetooth_discovery_unref(u->discovery);