summaryrefslogtreecommitdiff
path: root/src/modules/alsa/alsa-mixer.c
diff options
context:
space:
mode:
authorDavid Henningsson <david.henningsson@canonical.com>2013-03-25 13:47:08 +0100
committerTanu Kaskinen <tanuk@iki.fi>2013-03-27 11:36:46 +0200
commit6be21425cd8490411eb0b15cb4d3fd9185195c84 (patch)
tree8118507a3e10658a5182ef9ce0c1eded68f6dcff /src/modules/alsa/alsa-mixer.c
parent3d65e9c49e1523567649464a102f127be6feb332 (diff)
alsa-mixer: It's valid to have zero elements in a path
It's valid for a path to have zero elements, e g if it contains a single jack only. Earlier, this would cause an assertion failure in pa_path_condense. Also convert pa_bool_t to bool. Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Diffstat (limited to 'src/modules/alsa/alsa-mixer.c')
-rw-r--r--src/modules/alsa/alsa-mixer.c27
1 files changed, 13 insertions, 14 deletions
diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c
index 2814add37..b65baeb69 100644
--- a/src/modules/alsa/alsa-mixer.c
+++ b/src/modules/alsa/alsa-mixer.c
@@ -3152,14 +3152,14 @@ static void path_set_condense(pa_alsa_path_set *ps, snd_mixer_t *m) {
PA_HASHMAP_FOREACH(p2, ps->paths, state2) {
pa_alsa_element *ea, *eb;
pa_alsa_jack *ja, *jb;
- pa_bool_t is_subset = TRUE;
+ bool is_subset = true;
if (p == p2)
continue;
/* If a has a jack that b does not have, a is not a subset */
PA_LLIST_FOREACH(ja, p->jacks) {
- pa_bool_t exists = FALSE;
+ bool exists = false;
if (!ja->has_control)
continue;
@@ -3168,35 +3168,34 @@ static void path_set_condense(pa_alsa_path_set *ps, snd_mixer_t *m) {
if (jb->has_control && pa_streq(jb->alsa_name, ja->alsa_name) &&
(ja->state_plugged == jb->state_plugged) &&
(ja->state_unplugged == jb->state_unplugged)) {
- exists = TRUE;
+ exists = true;
break;
}
}
if (!exists) {
- is_subset = FALSE;
+ is_subset = false;
break;
}
}
/* Compare the elements of each set... */
- pa_assert_se(ea = p->elements);
- pa_assert_se(eb = p2->elements);
+ ea = p->elements;
+ eb = p2->elements;
while (is_subset) {
- if (pa_streq(ea->alsa_name, eb->alsa_name)) {
+ if (!ea && !eb)
+ break;
+ else if ((ea && !eb) || (!ea && eb))
+ is_subset = false;
+ else if (pa_streq(ea->alsa_name, eb->alsa_name)) {
if (element_is_subset(ea, eb, m)) {
ea = ea->next;
eb = eb->next;
- if ((ea && !eb) || (!ea && eb))
- is_subset = FALSE;
- else if (!ea && !eb)
- break;
} else
- is_subset = FALSE;
-
+ is_subset = false;
} else
- is_subset = FALSE;
+ is_subset = false;
}
if (is_subset) {