bluetooth: destruct stream only if it is not already destructed

https://bugzilla.redhat.com/show_bug.cgi?id=551842
This commit is contained in:
Lennart Poettering 2010-01-08 22:18:15 +01:00
parent 3eed219a50
commit 11688eca4b

View file

@ -823,23 +823,25 @@ static int stop_stream_fd(struct userdata *u) {
pa_assert(u); pa_assert(u);
pa_assert(u->rtpoll); pa_assert(u->rtpoll);
pa_assert(u->rtpoll_item);
pa_assert(u->stream_fd >= 0);
pa_rtpoll_item_free(u->rtpoll_item); if (u->rtpoll_item) {
u->rtpoll_item = NULL; pa_rtpoll_item_free(u->rtpoll_item);
u->rtpoll_item = NULL;
}
memset(msg.buf, 0, BT_SUGGESTED_BUFFER_SIZE); if (u->stream_fd >= 0) {
msg.start_req.h.type = BT_REQUEST; memset(msg.buf, 0, BT_SUGGESTED_BUFFER_SIZE);
msg.start_req.h.name = BT_STOP_STREAM; msg.start_req.h.type = BT_REQUEST;
msg.start_req.h.length = sizeof(msg.start_req); msg.start_req.h.name = BT_STOP_STREAM;
msg.start_req.h.length = sizeof(msg.start_req);
if (service_send(u, &msg.start_req.h) < 0 || if (service_send(u, &msg.start_req.h) < 0 ||
service_expect(u, &msg.rsp, sizeof(msg), BT_STOP_STREAM, sizeof(msg.start_rsp)) < 0) service_expect(u, &msg.rsp, sizeof(msg), BT_STOP_STREAM, sizeof(msg.start_rsp)) < 0)
r = -1; r = -1;
pa_close(u->stream_fd); pa_close(u->stream_fd);
u->stream_fd = -1; u->stream_fd = -1;
}
if (u->read_smoother) { if (u->read_smoother) {
pa_smoother_free(u->read_smoother); pa_smoother_free(u->read_smoother);