2024-03-03 04:00:57

by Masahiro Yamada

[permalink] [raw]
Subject: [PATCH 2/3] kconfig: use linked list in get_symbol_str() to iterate over menus

Currently, get_symbol_str() uses a tricky approach to traverse the
associated menus.

With relevant menus now linked to the symbol using a linked list,
use list_for_each_entry() for iterating on the menus.

Signed-off-by: Masahiro Yamada <[email protected]>
---

scripts/kconfig/menu.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
index 571394ed71e0..840ce642ec43 100644
--- a/scripts/kconfig/menu.c
+++ b/scripts/kconfig/menu.c
@@ -771,6 +771,7 @@ static void get_symbol_str(struct gstr *r, struct symbol *sym,
struct list_head *head)
{
struct property *prop;
+ struct menu *menu;

if (sym && sym->name) {
str_printf(r, "Symbol: %s [=%s]\n", sym->name,
@@ -787,17 +788,17 @@ static void get_symbol_str(struct gstr *r, struct symbol *sym,
}

/* Print the definitions with prompts before the ones without */
- for_all_properties(sym, prop, P_SYMBOL) {
- if (prop->menu->prompt) {
- get_def_str(r, prop->menu);
- get_prompt_str(r, prop->menu->prompt, head);
+ list_for_each_entry(menu, &sym->menus, link) {
+ if (menu->prompt) {
+ get_def_str(r, menu);
+ get_prompt_str(r, menu->prompt, head);
}
}

- for_all_properties(sym, prop, P_SYMBOL) {
- if (!prop->menu->prompt) {
- get_def_str(r, prop->menu);
- get_dep_str(r, prop->menu->dep, " Depends on: ");
+ list_for_each_entry(menu, &sym->menus, link) {
+ if (!menu->prompt) {
+ get_def_str(r, menu);
+ get_dep_str(r, menu->dep, " Depends on: ");
}
}

--
2.40.1



2024-03-04 09:38:31

by Nicolas Schier

[permalink] [raw]
Subject: Re: [PATCH 2/3] kconfig: use linked list in get_symbol_str() to iterate over menus

On Sun, Mar 03, 2024 at 01:00:34PM +0900 Masahiro Yamada wrote:
> Currently, get_symbol_str() uses a tricky approach to traverse the
> associated menus.
>
> With relevant menus now linked to the symbol using a linked list,
> use list_for_each_entry() for iterating on the menus.
>
> Signed-off-by: Masahiro Yamada <[email protected]>
> ---
>
> scripts/kconfig/menu.c | 17 +++++++++--------
> 1 file changed, 9 insertions(+), 8 deletions(-)
>

Reviewed-by: Nicolas Schier <[email protected]>