From: Vladimir Zakharov Date: Thu, 9 Aug 2018 20:54:20 +0000 (+0300) Subject: Extract static 'mutt_keymapslist_free' procedure X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3a42457798d09db4eb970ce86b3ec2ea4e92ae9a;p=neomutt Extract static 'mutt_keymapslist_free' procedure --- diff --git a/keymap.c b/keymap.c index ca36a1121..f4157d3d5 100644 --- a/keymap.c +++ b/keymap.c @@ -150,6 +150,7 @@ struct Keymap *Keymaps[MENU_MAX]; struct KeymapList *NewKeymaps[MENU_MAX]; static void mutt_keymap_free(struct Keymap **km); +static void mutt_keymaplist_free(struct Keymap **km_list); /** * alloc_keys - Allocate space for a sequence of keys @@ -1600,22 +1601,12 @@ void mutt_what_key(void) */ void mutt_keys_free(void) { - struct Keymap *map = NULL; - struct Keymap *next = NULL; - for (int i = 0; i < MENU_MAX; i++) { - for (map = Keymaps[i]; map; map = next) - { - next = map->next; - mutt_keymap_free(&map); - } - - Keymaps[i] = NULL; + mutt_keymaplist_free(&Keymaps[i]); } } - /** * mutt_keymap_free - Free a Keymap * @param km Keymap to free @@ -1630,3 +1621,19 @@ static void mutt_keymap_free(struct Keymap **km) FREE(&(*km)->keys); FREE(km); } + +/** + * mutt_keymaplist_free - Free a List of Keymaps + * @param km_list List of Keymaps to free + */ +static void mutt_keymaplist_free(struct Keymap **km_list) +{ + struct Keymap *map = NULL; + struct Keymap *next = NULL; + for (map = (*km_list); map; map = next) + { + next = map->next; + mutt_keymap_free(&map); + } + *km_list = NULL; +}