kconfig: change sym_change_count to a boolean flag

sym_change_count has no good reason to be 'int' type.

sym_set_change_count() compares the old and new values after casting
both of them to (bool). I do not see any practical diffrence between
sym_set_change_count(1) and sym_add_change_count(1).

Use the boolean flag, conf_changed.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
This commit is contained in:
Masahiro Yamada 2021-04-10 15:57:22 +09:00
parent 1f035a5291
commit 5ee5465940
7 changed files with 18 additions and 24 deletions

View file

@ -366,7 +366,7 @@ int conf_read_simple(const char *name, int def)
in = zconf_fopen(name); in = zconf_fopen(name);
if (in) if (in)
goto load; goto load;
sym_add_change_count(1); conf_set_changed(true);
env = getenv("KCONFIG_DEFCONFIG_LIST"); env = getenv("KCONFIG_DEFCONFIG_LIST");
if (!env) if (!env)
@ -444,7 +444,7 @@ int conf_read_simple(const char *name, int def)
if (def == S_DEF_USER) { if (def == S_DEF_USER) {
sym = sym_find(line + 2 + strlen(CONFIG_)); sym = sym_find(line + 2 + strlen(CONFIG_));
if (!sym) { if (!sym) {
sym_add_change_count(1); conf_set_changed(true);
continue; continue;
} }
} else { } else {
@ -487,7 +487,7 @@ int conf_read_simple(const char *name, int def)
*/ */
conf_touch_dep(line + strlen(CONFIG_)); conf_touch_dep(line + strlen(CONFIG_));
else else
sym_add_change_count(1); conf_set_changed(true);
continue; continue;
} }
@ -535,7 +535,7 @@ int conf_read(const char *name)
int conf_unsaved = 0; int conf_unsaved = 0;
int i; int i;
sym_set_change_count(0); conf_set_changed(false);
if (conf_read_simple(name, S_DEF_USER)) { if (conf_read_simple(name, S_DEF_USER)) {
sym_calc_value(modules_sym); sym_calc_value(modules_sym);
@ -593,7 +593,8 @@ int conf_read(const char *name)
} }
} }
sym_add_change_count(conf_warnings || conf_unsaved); if (conf_warnings || conf_unsaved)
conf_set_changed(true);
return 0; return 0;
} }
@ -938,7 +939,7 @@ int conf_write(const char *name)
if (is_same(name, tmpname)) { if (is_same(name, tmpname)) {
conf_message("No change to %s", name); conf_message("No change to %s", name);
unlink(tmpname); unlink(tmpname);
sym_set_change_count(0); conf_set_changed(false);
return 0; return 0;
} }
@ -950,7 +951,7 @@ int conf_write(const char *name)
conf_message("configuration written to %s", name); conf_message("configuration written to %s", name);
sym_set_change_count(0); conf_set_changed(false);
return 0; return 0;
} }
@ -1118,26 +1119,20 @@ int conf_write_autoconf(int overwrite)
return 0; return 0;
} }
static int sym_change_count; static bool conf_changed;
static void (*conf_changed_callback)(void); static void (*conf_changed_callback)(void);
void sym_set_change_count(int count) void conf_set_changed(bool val)
{ {
int _sym_change_count = sym_change_count; if (conf_changed_callback && conf_changed != val)
sym_change_count = count;
if (conf_changed_callback &&
(bool)_sym_change_count != (bool)count)
conf_changed_callback(); conf_changed_callback();
}
void sym_add_change_count(int count) conf_changed = val;
{
sym_set_change_count(count + sym_change_count);
} }
bool conf_get_changed(void) bool conf_get_changed(void)
{ {
return sym_change_count; return conf_changed;
} }
void conf_set_changed_callback(void (*fn)(void)) void conf_set_changed_callback(void (*fn)(void))

View file

@ -45,8 +45,6 @@ const char *zconf_curname(void);
/* confdata.c */ /* confdata.c */
const char *conf_get_configname(void); const char *conf_get_configname(void);
void sym_set_change_count(int count);
void sym_add_change_count(int count);
void set_all_choice_values(struct symbol *csym); void set_all_choice_values(struct symbol *csym);
/* confdata.c and expr.c */ /* confdata.c and expr.c */

View file

@ -8,6 +8,7 @@ int conf_read_simple(const char *name, int);
int conf_write_defconfig(const char *name); int conf_write_defconfig(const char *name);
int conf_write(const char *name); int conf_write(const char *name);
int conf_write_autoconf(int overwrite); int conf_write_autoconf(int overwrite);
void conf_set_changed(bool val);
bool conf_get_changed(void); bool conf_get_changed(void);
void conf_set_changed_callback(void (*fn)(void)); void conf_set_changed_callback(void (*fn)(void));
void conf_set_message_callback(void (*fn)(const char *s)); void conf_set_message_callback(void (*fn)(const char *s));

View file

@ -910,7 +910,7 @@ static void conf_load(void)
return; return;
if (!conf_read(dialog_input_result)) { if (!conf_read(dialog_input_result)) {
set_config_filename(dialog_input_result); set_config_filename(dialog_input_result);
sym_set_change_count(1); conf_set_changed(true);
return; return;
} }
show_textbox(NULL, "File does not exist!", 5, 38); show_textbox(NULL, "File does not exist!", 5, 38);

View file

@ -1408,7 +1408,7 @@ static void conf_load(void)
return; return;
if (!conf_read(dialog_input_result)) { if (!conf_read(dialog_input_result)) {
set_config_filename(dialog_input_result); set_config_filename(dialog_input_result);
sym_set_change_count(1); conf_set_changed(true);
return; return;
} }
btn_dialog(main_window, "File does not exist!", 0); btn_dialog(main_window, "File does not exist!", 0);

View file

@ -507,7 +507,7 @@ void conf_parse(const char *name)
} }
if (yynerrs) if (yynerrs)
exit(1); exit(1);
sym_set_change_count(1); conf_set_changed(true);
} }
static bool zconf_endtoken(const char *tokenname, static bool zconf_endtoken(const char *tokenname,

View file

@ -472,7 +472,7 @@ void sym_clear_all_valid(void)
for_all_symbols(i, sym) for_all_symbols(i, sym)
sym->flags &= ~SYMBOL_VALID; sym->flags &= ~SYMBOL_VALID;
sym_add_change_count(1); conf_set_changed(true);
sym_calc_value(modules_sym); sym_calc_value(modules_sym);
} }