--- alsa-lib-1.0.6/src/mixer/mixer.c.org 2005-01-07 22:37:42.688153791 +0100 +++ alsa-lib-1.0.6/src/mixer/mixer.c 2005-01-07 22:39:49.943579453 +0100 @@ -520,17 +520,14 @@ return c1->class->compare(c1, c2); } +typedef int (*qsort_func)(const void *, const void *); static int snd_mixer_sort(snd_mixer_t *mixer) { unsigned int k; - int compar(const void *a, const void *b) { - return mixer->compare(*(const snd_mixer_elem_t * const *) a, - *(const snd_mixer_elem_t * const *) b); - } assert(mixer); assert(mixer->compare); INIT_LIST_HEAD(&mixer->elems); - qsort(mixer->pelems, mixer->count, sizeof(snd_mixer_elem_t*), compar); + qsort(mixer->pelems, mixer->count, sizeof(snd_mixer_elem_t*), (qsort_func)mixer->compare); for (k = 0; k < mixer->count; k++) list_add_tail(&mixer->pelems[k]->list, &mixer->elems); return 0;