Commit 03c4ecaa authored by Masahiro Yamada's avatar Masahiro Yamada
Browse files

kconfig: use menu_for_each_entry() to traverse menu tree



Use menu_for_each_entry() to traverse the menu tree instead of
implementing similar logic in each function.

Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
parent 7284b4fb
Loading
Loading
Loading
Loading
+5 −23
Original line number Diff line number Diff line
@@ -793,23 +793,19 @@ int conf_write_defconfig(const char *filename)

	sym_clear_all_valid();

	/* Traverse all menus to find all relevant symbols */
	menu = rootmenu.list;

	while (menu != NULL)
	{
	menu_for_each_entry(menu) {
		sym = menu->sym;
		if (sym && !sym_is_choice(sym)) {
			sym_calc_value(sym);
			if (!(sym->flags & SYMBOL_WRITE))
				goto next_menu;
				continue;
			sym->flags &= ~SYMBOL_WRITE;
			/* If we cannot change the symbol - skip */
			if (!sym_is_changeable(sym))
				goto next_menu;
				continue;
			/* If symbol equals to default value - skip */
			if (strcmp(sym_get_string_value(sym), sym_get_string_default(sym)) == 0)
				goto next_menu;
				continue;

			/*
			 * If symbol is a choice value and equals to the
@@ -827,25 +823,11 @@ int conf_write_defconfig(const char *filename)
				if (!sym_is_optional(cs) && sym == ds) {
					if ((sym->type == S_BOOLEAN) &&
					    sym_get_tristate_value(sym) == yes)
						goto next_menu;
						continue;
				}
			}
			print_symbol_for_dotconfig(out, sym);
		}
next_menu:
		if (menu->list != NULL) {
			menu = menu->list;
		}
		else if (menu->next != NULL) {
			menu = menu->next;
		} else {
			while ((menu = menu->parent)) {
				if (menu->next != NULL) {
					menu = menu->next;
					break;
				}
			}
		}
	}
	fclose(out);
	return 0;
+1 −12
Original line number Diff line number Diff line
@@ -517,20 +517,9 @@ void conf_parse(const char *name)

	menu_finalize();

	menu = &rootmenu;
	while (menu) {
	menu_for_each_entry(menu) {
		if (menu->sym && sym_check_deps(menu->sym))
			yynerrs++;

		if (menu->list) {
			menu = menu->list;
			continue;
		}

		while (!menu->next && menu->parent)
			menu = menu->parent;

		menu = menu->next;
	}

	if (yynerrs)