mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-04 13:29:59 -05:00
sink-input,source-output: Handle devices going away in unlink hooks
If a *_UNLINK_POST hook causes a sink-input/source-output's sink/source to go away, the subsequent attempt to update the sink/source status will cause an assert. We deal with this by checking the sink/source status before trying to update it.
This commit is contained in:
parent
89a49d9611
commit
0521db6cf7
2 changed files with 6 additions and 2 deletions
|
|
@ -657,7 +657,9 @@ void pa_sink_input_unlink(pa_sink_input *i) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i->sink) {
|
if (i->sink) {
|
||||||
|
if (PA_SINK_IS_LINKED(pa_sink_get_state(i->sink)))
|
||||||
pa_sink_update_status(i->sink);
|
pa_sink_update_status(i->sink);
|
||||||
|
|
||||||
i->sink = NULL;
|
i->sink = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -587,7 +587,9 @@ void pa_source_output_unlink(pa_source_output*o) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (o->source) {
|
if (o->source) {
|
||||||
|
if (PA_SOURCE_IS_LINKED(pa_source_get_state(o->source)))
|
||||||
pa_source_update_status(o->source);
|
pa_source_update_status(o->source);
|
||||||
|
|
||||||
o->source = NULL;
|
o->source = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue