On 30.08.2017 20:51, Tanu Kaskinen wrote:
Sources should probably be added to pa_core.sources in pa_source_put(),
but currently they're added in pa_source_new(). A lot of stuff can
happen between the pa_source_new() and pa_source_put() calls, and
it has happened that the default source was updated during this time.
Therefore, pa_core_update_default_source() needs to take it into account
that not every source is necessarily linked.
---
  src/pulsecore/core.c | 6 ++++++
  1 file changed, 6 insertions(+)

diff --git a/src/pulsecore/core.c b/src/pulsecore/core.c
index e01677d5d..454c56685 100644
--- a/src/pulsecore/core.c
+++ b/src/pulsecore/core.c
@@ -315,6 +315,9 @@ void pa_core_update_default_sink(pa_core *core) {
      pa_assert(core);
PA_IDXSET_FOREACH(sink, core->sinks, idx) {
+        if (!PA_SINK_IS_LINKED(sink->state))
+            continue;
+
          if (!best) {
              best = sink;
              continue;
@@ -399,6 +402,9 @@ void pa_core_update_default_source(pa_core *core) {
      pa_assert(core);
PA_IDXSET_FOREACH(source, core->sources, idx) {
+        if (!PA_SOURCE_IS_LINKED(source->state))
+            continue;
+
          if (!best) {
              best = source;
              continue;

Looks good to me.

_______________________________________________
pulseaudio-discuss mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

Reply via email to