[PATCH 18/27] kconfig: change file_lookup() to return the file name

From: Masahiro Yamada
Date: Fri Feb 02 2024 - 11:03:36 EST


Currently, file_lookup() returns a pointer to (struct file), but the
callers use only file->name.

Make it return the ->name member directly.

This adjustment encapsulates struct file and file_list as internal
implementation.

Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
---

scripts/kconfig/expr.h | 7 -------
scripts/kconfig/lexer.l | 5 ++---
scripts/kconfig/lkc.h | 2 +-
scripts/kconfig/menu.c | 2 --
scripts/kconfig/util.c | 13 ++++++++++---
5 files changed, 13 insertions(+), 16 deletions(-)

diff --git a/scripts/kconfig/expr.h b/scripts/kconfig/expr.h
index 760b1e681b43..d667f9aa041e 100644
--- a/scripts/kconfig/expr.h
+++ b/scripts/kconfig/expr.h
@@ -17,11 +17,6 @@ extern "C" {
#include <stdbool.h>
#endif

-struct file {
- struct file *next;
- char name[];
-};
-
typedef enum tristate {
no, mod, yes
} tristate;
@@ -275,8 +270,6 @@ struct jump_key {
struct menu *target;
};

-extern struct file *file_list;
-
extern struct symbol symbol_yes, symbol_no, symbol_mod;
extern struct symbol *modules_sym;
extern int cdebug;
diff --git a/scripts/kconfig/lexer.l b/scripts/kconfig/lexer.l
index 71f651bb82ba..89544c3a1a29 100644
--- a/scripts/kconfig/lexer.l
+++ b/scripts/kconfig/lexer.l
@@ -401,13 +401,12 @@ void zconf_initscan(const char *name)
exit(1);
}

- cur_filename = file_lookup(name)->name;
+ cur_filename = file_lookup(name);
yylineno = 1;
}

void zconf_nextfile(const char *name)
{
- struct file *file = file_lookup(name);
struct buffer *buf = xmalloc(sizeof(*buf));
bool recur_include = false;

@@ -443,7 +442,7 @@ void zconf_nextfile(const char *name)
}

yylineno = 1;
- cur_filename = file->name;
+ cur_filename = file_lookup(name);
}

static void zconf_endfile(void)
diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h
index d8249052f2e3..71afcbd56273 100644
--- a/scripts/kconfig/lkc.h
+++ b/scripts/kconfig/lkc.h
@@ -52,7 +52,7 @@ static inline void xfwrite(const void *str, size_t len, size_t count, FILE *out)
}

/* util.c */
-struct file *file_lookup(const char *name);
+const char *file_lookup(const char *name);
void *xmalloc(size_t size);
void *xcalloc(size_t nmemb, size_t size);
void *xrealloc(void *p, size_t size);
diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
index b879576d1ab4..f701382f8a69 100644
--- a/scripts/kconfig/menu.c
+++ b/scripts/kconfig/menu.c
@@ -16,8 +16,6 @@ static const char nohelp_text[] = "There is no help available for this option.";
struct menu rootmenu;
static struct menu **last_entry_ptr;

-struct file *file_list;
-
void menu_warn(struct menu *menu, const char *fmt, ...)
{
va_list ap;
diff --git a/scripts/kconfig/util.c b/scripts/kconfig/util.c
index 2636dccea0c9..610d64c01479 100644
--- a/scripts/kconfig/util.c
+++ b/scripts/kconfig/util.c
@@ -9,15 +9,22 @@
#include <string.h>
#include "lkc.h"

+struct file {
+ struct file *next;
+ char name[];
+};
+
+static struct file *file_list;
+
/* file already present in list? If not add it */
-struct file *file_lookup(const char *name)
+const char *file_lookup(const char *name)
{
struct file *file;
size_t len;

for (file = file_list; file; file = file->next) {
if (!strcmp(name, file->name)) {
- return file;
+ return file->name;
}
}

@@ -31,7 +38,7 @@ struct file *file_lookup(const char *name)

str_printf(&autoconf_cmd, "\t%s \\\n", name);

- return file;
+ return file->name;
}

/* Allocate initial growable string */
--
2.40.1