aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoão Paulo Rechi Vita <jprvita@endlessm.com>2019-01-02 18:14:17 -0800
committerTanu Kaskinen <tanuk@iki.fi>2019-01-23 15:18:22 +0000
commit334ae350b4cdd8af2d6d3b4034f58fa0b3ad7f53 (patch)
tree26de9a4e41a29b5a303cbbde1f9b71bbeb826739
parenta5f25af0434bd703c502c230f5a5ff0238b6b8a3 (diff)
downloadpulseaudio-334ae350b4cdd8af2d6d3b4034f58fa0b3ad7f53.tar.gz
card: Only fire the profile available changed hook for linked cards
pa_card_profile_set_available needs to check if the card is linked before firing PA_CORE_HOOK_CARD_PROFILE_AVAILABLE_CHANGED, so callbacks connected to it receive a fully initialized card object. This fixes a crash introduced by commit 30a551bbc "switch-on-port-available: Check if we need to change the active profile".
-rw-r--r--src/pulsecore/card.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c
index f1628938..69895967 100644
--- a/src/pulsecore/card.c
+++ b/src/pulsecore/card.c
@@ -89,7 +89,8 @@ void pa_card_profile_set_available(pa_card_profile *c, pa_available_t available)
pa_assert_se(core = c->card->core);
pa_subscription_post(core, PA_SUBSCRIPTION_EVENT_CARD|PA_SUBSCRIPTION_EVENT_CHANGE, c->card->index);
- pa_hook_fire(&core->hooks[PA_CORE_HOOK_CARD_PROFILE_AVAILABLE_CHANGED], c);
+ if (c->card->linked)
+ pa_hook_fire(&core->hooks[PA_CORE_HOOK_CARD_PROFILE_AVAILABLE_CHANGED], c);
}
pa_card_new_data* pa_card_new_data_init(pa_card_new_data *data) {