From 165156beeb2926472bbceca3c103aacc3f81a8cc Mon Sep 17 00:00:00 2001 From: Maria Matejka Date: Mon, 2 May 2022 20:29:03 +0200 Subject: Conf: Symbols are properly scoped Now there is a persistent root symbol scope and all scopes have their symbol hashes to store local symbols and not leak any symbol out. --- nest/cmds.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'nest/cmds.c') diff --git a/nest/cmds.c b/nest/cmds.c index 99a7bbfe..092be48a 100644 --- a/nest/cmds.c +++ b/nest/cmds.c @@ -51,17 +51,18 @@ cmd_show_symbols(struct sym_show_data *sd) cli_msg(1010, "%-8s\t%s", sd->sym->name, cf_symbol_class_name(sd->sym)); else { - HASH_WALK(config->sym_hash, next, sym) - { - if (!sym->scope->active) - continue; - - if (sd->type && (sym->class != sd->type)) - continue; - - cli_msg(-1010, "%-8s\t%s", sym->name, cf_symbol_class_name(sym)); - } - HASH_WALK_END; + for (const struct sym_scope *scope = config->root_scope; scope; scope = scope->next) + HASH_WALK(scope->hash, next, sym) + { + if (!sym->scope->active) + continue; + + if (sd->type && (sym->class != sd->type)) + continue; + + cli_msg(-1010, "%-8s\t%s", sym->name, cf_symbol_class_name(sym)); + } + HASH_WALK_END; cli_msg(0, ""); } -- cgit v1.2.3