summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mixer/simple_none.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/mixer/simple_none.c b/src/mixer/simple_none.c
index 5ae94d98..cf57ea53 100644
--- a/src/mixer/simple_none.c
+++ b/src/mixer/simple_none.c
@@ -532,7 +532,7 @@ static int elem_write_route(selem_none_t *s, int dir, selem_ctl_type_t type)
static int elem_write_enum(selem_none_t *s)
{
- snd_ctl_elem_value_t *ctl;
+ snd_ctl_elem_value_t ctl = {0};
unsigned int idx;
int err;
int type;
@@ -546,13 +546,12 @@ static int elem_write_enum(selem_none_t *s)
else if (s->selem.caps & SM_CAP_CENUM)
type = CTL_CAPTURE_ENUM;
c = &s->ctls[type];
- snd_ctl_elem_value_alloca(&ctl);
- if ((err = snd_hctl_elem_read(c->elem, ctl)) < 0)
+ if ((err = snd_hctl_elem_read(c->elem, &ctl)) < 0)
return err;
for (idx = 0; idx < c->values; idx++)
- snd_ctl_elem_value_set_enumerated(ctl, idx,
+ snd_ctl_elem_value_set_enumerated(&ctl, idx,
(unsigned int)s->str[0].vol[idx]);
- if ((err = snd_hctl_elem_write(c->elem, ctl)) < 0)
+ if ((err = snd_hctl_elem_write(c->elem, &ctl)) < 0)
return err;
return 0;
}