]> git.alsa-project.org Git - alsa-lib.git/commitdiff
control: remap - fix the endless loop in remap_numid_child_new()
authorJaroslav Kysela <perex@perex.cz>
Tue, 19 Dec 2023 17:37:56 +0000 (18:37 +0100)
committerJaroslav Kysela <perex@perex.cz>
Tue, 19 Dec 2023 17:45:54 +0000 (18:45 +0100)
Avoid the new numid search for the maped only controls.

Link: https://lore.kernel.org/alsa-devel/20231219164539.GB14858@ediswmail.ad.cirrus.com/
Reported-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/control/control_remap.c

index 6fcb01f147ab2ef74125dcb6ce3ddd78c34a8d5c..81cf38e305cc7d78c1f117f35519a16d2dc46075 100644 (file)
@@ -148,7 +148,7 @@ static snd_ctl_numid_t *remap_numid_child_new(snd_ctl_remap_t *priv, unsigned in
 
        if (numid_child == 0)
                return NULL;
-       if (remap_find_numid_app(priv, numid_child)) {
+       if (priv->numid_remap_active && remap_find_numid_app(priv, numid_child)) {
                while (remap_find_numid_app(priv, priv->numid_app_last))
                        priv->numid_app_last++;
                numid_app = priv->numid_app_last;
@@ -222,6 +222,7 @@ static snd_ctl_map_t *remap_find_map_numid(snd_ctl_remap_t *priv, unsigned int n
        }
        return NULL;
 }
+
 static snd_ctl_map_t *remap_find_map_id(snd_ctl_remap_t *priv, snd_ctl_elem_id_t *id)
 {
        size_t count;