Message ID | 20240602125416.976336-2-masahiroy@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [1/3] kconfig: remove tristate choice support | expand |
On Sun, Jun 02, 2024 at 09:54:15PM +0900 Masahiro Yamada wrote: > The outer switch statement can be avoided by continue'ing earlier the > loop when the symbol type is neither S_BOOLEAN nor S_TRISTATE. > > Remove it to reduce the indentation level by one. In addition, avoid > the repetition of sym->def[S_DEF_USER].tri. > > No functional change intended. > > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> > --- > > scripts/kconfig/conf.c | 61 +++++++++++++++++++++--------------------- > 1 file changed, 30 insertions(+), 31 deletions(-) > > diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c > index 9a20e9e9bdad..cf8193fc00fc 100644 > --- a/scripts/kconfig/conf.c > +++ b/scripts/kconfig/conf.c > @@ -218,43 +218,42 @@ static bool conf_set_all_new_symbols(enum conf_def_mode mode) > } > > for_all_symbols(sym) { > - if (sym_has_value(sym) || sym->flags & SYMBOL_VALID) > + tristate val; > + > + if (sym_has_value(sym) || sym->flags & SYMBOL_VALID || > + (sym->type != S_BOOLEAN && sym->type != S_TRISTATE)) > continue; > - switch (sym_get_type(sym)) { > - case S_BOOLEAN: > - case S_TRISTATE: > - has_changed = true; > - switch (mode) { > - case def_yes: > - sym->def[S_DEF_USER].tri = yes; > - break; > - case def_mod: > - sym->def[S_DEF_USER].tri = mod; > - break; > - case def_no: > - sym->def[S_DEF_USER].tri = no; > - break; > - case def_random: > - sym->def[S_DEF_USER].tri = no; > - cnt = rand() % 100; > - if (sym->type == S_TRISTATE) { > - if (cnt < pty) > - sym->def[S_DEF_USER].tri = yes; > - else if (cnt < pty + ptm) > - sym->def[S_DEF_USER].tri = mod; > - } else if (cnt < pby) > - sym->def[S_DEF_USER].tri = yes; > - break; > - default: > - continue; > + > + has_changed = true; > + switch (mode) { > + case def_yes: > + val = yes; > + break; > + case def_mod: > + val = mod; > + break; > + case def_no: > + val = no; > + break; > + case def_random: > + val = no; > + cnt = rand() % 100; > + if (sym->type == S_TRISTATE) { > + if (cnt < pty) > + val = yes; > + else if (cnt < pty + ptm) > + val = mod; > + } else if (cnt < pby) { > + val = yes; > } > - if (!(sym_is_choice(sym) && mode == def_random)) > - sym->flags |= SYMBOL_DEF_USER; > break; > default: > - break; > + continue; > } > + sym->def[S_DEF_USER].tri = val; > > + if (!(sym_is_choice(sym) && mode == def_random)) > + sym->flags |= SYMBOL_DEF_USER; > } > > sym_clear_all_valid(); > -- > 2.40.1 > > Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c index 9a20e9e9bdad..cf8193fc00fc 100644 --- a/scripts/kconfig/conf.c +++ b/scripts/kconfig/conf.c @@ -218,43 +218,42 @@ static bool conf_set_all_new_symbols(enum conf_def_mode mode) } for_all_symbols(sym) { - if (sym_has_value(sym) || sym->flags & SYMBOL_VALID) + tristate val; + + if (sym_has_value(sym) || sym->flags & SYMBOL_VALID || + (sym->type != S_BOOLEAN && sym->type != S_TRISTATE)) continue; - switch (sym_get_type(sym)) { - case S_BOOLEAN: - case S_TRISTATE: - has_changed = true; - switch (mode) { - case def_yes: - sym->def[S_DEF_USER].tri = yes; - break; - case def_mod: - sym->def[S_DEF_USER].tri = mod; - break; - case def_no: - sym->def[S_DEF_USER].tri = no; - break; - case def_random: - sym->def[S_DEF_USER].tri = no; - cnt = rand() % 100; - if (sym->type == S_TRISTATE) { - if (cnt < pty) - sym->def[S_DEF_USER].tri = yes; - else if (cnt < pty + ptm) - sym->def[S_DEF_USER].tri = mod; - } else if (cnt < pby) - sym->def[S_DEF_USER].tri = yes; - break; - default: - continue; + + has_changed = true; + switch (mode) { + case def_yes: + val = yes; + break; + case def_mod: + val = mod; + break; + case def_no: + val = no; + break; + case def_random: + val = no; + cnt = rand() % 100; + if (sym->type == S_TRISTATE) { + if (cnt < pty) + val = yes; + else if (cnt < pty + ptm) + val = mod; + } else if (cnt < pby) { + val = yes; } - if (!(sym_is_choice(sym) && mode == def_random)) - sym->flags |= SYMBOL_DEF_USER; break; default: - break; + continue; } + sym->def[S_DEF_USER].tri = val; + if (!(sym_is_choice(sym) && mode == def_random)) + sym->flags |= SYMBOL_DEF_USER; } sym_clear_all_valid();
The outer switch statement can be avoided by continue'ing earlier the loop when the symbol type is neither S_BOOLEAN nor S_TRISTATE. Remove it to reduce the indentation level by one. In addition, avoid the repetition of sym->def[S_DEF_USER].tri. No functional change intended. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> --- scripts/kconfig/conf.c | 61 +++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 31 deletions(-)