kconfig: remove SYMBOL_CHOICEVAL flag
authorMasahiro Yamada <masahiroy@kernel.org>
Sun, 7 Jul 2024 15:38:06 +0000 (00:38 +0900)
committerMasahiro Yamada <masahiroy@kernel.org>
Tue, 16 Jul 2024 07:07:14 +0000 (16:07 +0900)
This flag is unneeded because a choice member can be detected by
other means.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
scripts/kconfig/expr.h
scripts/kconfig/gconf.c
scripts/kconfig/lkc.h
scripts/kconfig/menu.c
scripts/kconfig/symbol.c

index 54b008c0161de4701c430e4d2ac75a0619eafb4b..6e47e0ad6e6eb1d7babcf226ce31e49594b9b51b 100644 (file)
@@ -131,7 +131,6 @@ struct symbol {
 
 #define SYMBOL_CONST      0x0001  /* symbol is const */
 #define SYMBOL_CHECK      0x0008  /* used during dependency checking */
-#define SYMBOL_CHOICEVAL  0x0020  /* used as a value in a choice block */
 #define SYMBOL_VALID      0x0080  /* set when symbol.curr is calculated */
 #define SYMBOL_WRITE      0x0200  /* write symbol to file (KCONFIG_CONFIG) */
 #define SYMBOL_WRITTEN    0x0800  /* track info to avoid double-write to .config */
index 6b50e25133e3bfcd194dcc3a1d118dd6d19aa656..c0f46f189060733b8cbffefef065c240529c3520 100644 (file)
@@ -1070,7 +1070,7 @@ static gchar **fill_row(struct menu *menu)
                row[COL_BTNVIS] = GINT_TO_POINTER(FALSE);
                return row;
        }
-       if (sym->flags & SYMBOL_CHOICEVAL)
+       if (sym_is_choice_value(sym))
                row[COL_BTNRAD] = GINT_TO_POINTER(TRUE);
 
        stype = sym_get_type(sym);
index 3fa46610f25f9bd918445efa91285c9b19dd42c8..401bdf36323a9a3fbedb46a554b17d27193bbb5f 100644 (file)
@@ -128,10 +128,7 @@ static inline bool sym_is_choice(const struct symbol *sym)
        return sym->name == NULL;
 }
 
-static inline bool sym_is_choice_value(const struct symbol *sym)
-{
-       return sym->flags & SYMBOL_CHOICEVAL ? true : false;
-}
+bool sym_is_choice_value(const struct symbol *sym);
 
 static inline bool sym_has_value(const struct symbol *sym)
 {
index 2a9b4c4f44286aa153251b232c22a199f476e8fa..cd34cc5aefcfcedef41a014936e90062f4cf2ece 100644 (file)
@@ -467,11 +467,6 @@ static void _menu_finalize(struct menu *parent, bool inside_choice)
                sym->dir_dep.expr = expr_alloc_or(sym->dir_dep.expr, parent->dep);
        }
        for (menu = parent->list; menu; menu = menu->next) {
-               if (sym && sym_is_choice(sym) &&
-                   menu->sym && !sym_is_choice_value(menu->sym)) {
-                       menu->sym->flags |= SYMBOL_CHOICEVAL;
-               }
-
                /*
                 * This code serves two purposes:
                 *
index 3255bf310cb2332cfd8dbc036687a72b6156cb3e..6c6f238c4f7bbf0a2bd42fdfbae79736341e0c00 100644 (file)
@@ -871,6 +871,11 @@ bool sym_is_changeable(const struct symbol *sym)
        return !sym_is_choice(sym) && sym->visible > sym->rev_dep.tri;
 }
 
+bool sym_is_choice_value(const struct symbol *sym)
+{
+       return !list_empty(&sym->choice_link);
+}
+
 HASHTABLE_DEFINE(sym_hashtable, SYMBOL_HASHSIZE);
 
 struct symbol *sym_lookup(const char *name, int flags)
@@ -908,6 +913,7 @@ struct symbol *sym_lookup(const char *name, int flags)
        symbol->type = S_UNKNOWN;
        symbol->flags = flags;
        INIT_LIST_HEAD(&symbol->menus);
+       INIT_LIST_HEAD(&symbol->choice_link);
 
        hash_add(sym_hashtable, &symbol->node, hash);