]> git.alsa-project.org Git - alsa-lib.git/commitdiff
Use bag_for_each_safe() for event handling loop
authorTakashi Iwai <tiwai@suse.de>
Fri, 4 Feb 2005 19:18:49 +0000 (19:18 +0000)
committerTakashi Iwai <tiwai@suse.de>
Fri, 4 Feb 2005 19:18:49 +0000 (19:18 +0000)
Use bag_for_each_safe() for event handling loop.
Event callbacks may be destructive.

src/mixer/mixer.c

index e33e33644dddfdd1c1095614238788ebb44baf89..74d1e79df9d9aaed092dd230d681478be23838c1 100644 (file)
@@ -152,8 +152,8 @@ static int hctl_elem_event_handler(snd_hctl_elem_t *helem,
        }
        if (mask & (SND_CTL_EVENT_MASK_VALUE | SND_CTL_EVENT_MASK_INFO)) {
                int err = 0;
-               bag_iterator_t i;
-               bag_for_each(i, bag) {
+               bag_iterator_t i, n;
+               bag_for_each_safe(i, n, bag) {
                        snd_mixer_elem_t *melem = bag_iterator_entry(i);
                        snd_mixer_class_t *class = melem->class;
                        err = class->event(class, mask, helem, melem);