Commit 5ee54659 authored by Masahiro Yamada's avatar Masahiro Yamada
Browse files

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: default avatarMasahiro Yamada <masahiroy@kernel.org>
parent 1f035a52
Loading
Loading
Loading
Loading
+13 −18
Original line number Diff line number Diff line
@@ -366,7 +366,7 @@ int conf_read_simple(const char *name, int def)
		in = zconf_fopen(name);
		if (in)
			goto load;
		sym_add_change_count(1);
		conf_set_changed(true);

		env = getenv("KCONFIG_DEFCONFIG_LIST");
		if (!env)
@@ -444,7 +444,7 @@ int conf_read_simple(const char *name, int def)
			if (def == S_DEF_USER) {
				sym = sym_find(line + 2 + strlen(CONFIG_));
				if (!sym) {
					sym_add_change_count(1);
					conf_set_changed(true);
					continue;
				}
			} else {
@@ -487,7 +487,7 @@ int conf_read_simple(const char *name, int def)
					 */
					conf_touch_dep(line + strlen(CONFIG_));
				else
					sym_add_change_count(1);
					conf_set_changed(true);
				continue;
			}

@@ -535,7 +535,7 @@ int conf_read(const char *name)
	int conf_unsaved = 0;
	int i;

	sym_set_change_count(0);
	conf_set_changed(false);

	if (conf_read_simple(name, S_DEF_USER)) {
		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;
}
@@ -938,7 +939,7 @@ int conf_write(const char *name)
		if (is_same(name, tmpname)) {
			conf_message("No change to %s", name);
			unlink(tmpname);
			sym_set_change_count(0);
			conf_set_changed(false);
			return 0;
		}

@@ -950,7 +951,7 @@ int conf_write(const char *name)

	conf_message("configuration written to %s", name);

	sym_set_change_count(0);
	conf_set_changed(false);

	return 0;
}
@@ -1118,26 +1119,20 @@ int conf_write_autoconf(int overwrite)
	return 0;
}

static int sym_change_count;
static bool conf_changed;
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;
	sym_change_count = count;
	if (conf_changed_callback &&
	    (bool)_sym_change_count != (bool)count)
	if (conf_changed_callback && conf_changed != val)
		conf_changed_callback();
}

void sym_add_change_count(int count)
{
	sym_set_change_count(count + sym_change_count);
	conf_changed = val;
}

bool conf_get_changed(void)
{
	return sym_change_count;
	return conf_changed;
}

void conf_set_changed_callback(void (*fn)(void))
+0 −2
Original line number Diff line number Diff line
@@ -45,8 +45,6 @@ const char *zconf_curname(void);

/* confdata.c */
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);

/* confdata.c and expr.c */
+1 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ int conf_read_simple(const char *name, int);
int conf_write_defconfig(const char *name);
int conf_write(const char *name);
int conf_write_autoconf(int overwrite);
void conf_set_changed(bool val);
bool conf_get_changed(void);
void conf_set_changed_callback(void (*fn)(void));
void conf_set_message_callback(void (*fn)(const char *s));
+1 −1
Original line number Diff line number Diff line
@@ -910,7 +910,7 @@ static void conf_load(void)
				return;
			if (!conf_read(dialog_input_result)) {
				set_config_filename(dialog_input_result);
				sym_set_change_count(1);
				conf_set_changed(true);
				return;
			}
			show_textbox(NULL, "File does not exist!", 5, 38);
+1 −1
Original line number Diff line number Diff line
@@ -1408,7 +1408,7 @@ static void conf_load(void)
				return;
			if (!conf_read(dialog_input_result)) {
				set_config_filename(dialog_input_result);
				sym_set_change_count(1);
				conf_set_changed(true);
				return;
			}
			btn_dialog(main_window, "File does not exist!", 0);
Loading