From 157cb698ac09a38d46c24198ee83fd6d564b174c Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Fri, 3 Jun 2005 14:04:53 +0000 Subject: [PATCH] mixer - fix typo and memory leak --- include/mixer.h | 2 +- src/mixer/simple_none.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/include/mixer.h b/include/mixer.h index ac2db33d..a5d8ef15 100644 --- a/include/mixer.h +++ b/include/mixer.h @@ -144,7 +144,7 @@ size_t snd_mixer_class_sizeof(void); * \brief allocate an invalid #snd_mixer_class_t using standard alloca * \param ptr returned pointer */ -#define snd_mixer_class_alloca(ptr) do { assert(ptr); *ptr = (snd_mixer_selem_id_t *) alloca(snd_mixer_class_sizeof()); memset(*ptr, 0, snd_mixer_class_sizeof()); } while (0) +#define snd_mixer_class_alloca(ptr) do { assert(ptr); *ptr = (snd_mixer_class_t *) alloca(snd_mixer_class_sizeof()); memset(*ptr, 0, snd_mixer_class_sizeof()); } while (0) int snd_mixer_class_malloc(snd_mixer_class_t **ptr); void snd_mixer_class_free(snd_mixer_class_t *obj); void snd_mixer_class_copy(snd_mixer_class_t *dst, const snd_mixer_class_t *src); diff --git a/src/mixer/simple_none.c b/src/mixer/simple_none.c index 37b6ea57..5f5801bd 100644 --- a/src/mixer/simple_none.c +++ b/src/mixer/simple_none.c @@ -598,7 +598,10 @@ static int selem_write(snd_mixer_elem_t *elem) static void selem_free(snd_mixer_elem_t *elem) { assert(snd_mixer_elem_get_type(elem) == SND_MIXER_ELEM_SIMPLE); - free(snd_mixer_elem_get_private(elem)); + selem_none_t *simple = snd_mixer_elem_get_private(elem); + if (simple->selem.id) + snd_mixer_selem_id_free(simple->selem.id); + free(simple); } static int simple_update(snd_mixer_elem_t *melem) -- 2.47.1