From 6bfe3f0a6eb26743bbdeb4464afded13d5992c2c Mon Sep 17 00:00:00 2001 From: Max Wash Date: Mon, 25 May 2026 19:14:45 +0100 Subject: [PATCH] core: update iterator usage --- bshell.core/cmdlets/get-command.c | 21 +++++++++++---------- bshell.core/cmdlets/get-verb.c | 12 ++++++------ 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/bshell.core/cmdlets/get-command.c b/bshell.core/cmdlets/get-command.c index 8a09323..673fa54 100644 --- a/bshell.core/cmdlets/get-command.c +++ b/bshell.core/cmdlets/get-command.c @@ -40,13 +40,13 @@ static enum bshell_status process_record( return BSHELL_SUCCESS; } - fx_iterator *aliases = fx_iterator_begin(rt->rt_aliases); + const fx_iterator *aliases = fx_iterator_begin(rt->rt_aliases); fx_foreach(item_v, aliases) { fx_hashtable_item *item; - fx_value_get_object(&item_v, &item); - fx_value alias_v = fx_hashtable_item_get_value(item); - bshell_pipeline_write_value(pipeline, alias_v, false); + fx_value_get_object(item_v, &item); + const fx_value *alias_v = fx_hashtable_item_get_value(item); + bshell_pipeline_write_value(pipeline, *alias_v, false); } fx_iterator_unref(aliases); @@ -55,13 +55,14 @@ static enum bshell_status process_record( while (scope) { fx_hashtable *function_map = bshell_runtime_scope_get_functions(scope); - fx_iterator *functions = fx_iterator_begin(function_map); + const fx_iterator *functions = fx_iterator_begin(function_map); fx_foreach(item_v, functions) { fx_hashtable_item *item; - fx_value_get_object(&item_v, &item); - fx_value func_v = fx_hashtable_item_get_value(item); - bshell_pipeline_write_value(pipeline, func_v, false); + fx_value_get_object(item_v, &item); + const fx_value *func_v + = fx_hashtable_item_get_value(item); + bshell_pipeline_write_value(pipeline, *func_v, false); } fx_iterator_unref(functions); @@ -72,12 +73,12 @@ static enum bshell_status process_record( fx_foreach(asm_v, assemblies) { fx_assembly *assembly = NULL; - fx_value_get_object(&asm_v, &assembly); + fx_value_get_object(asm_v, &assembly); fx_iterator *types = fx_assembly_get_types(assembly); fx_foreach(v, types) { fx_type *ty = NULL; - fx_value_get_object(&v, &ty); + fx_value_get_object(v, &ty); fx_type_flags ty_flags = fx_type_get_flags(ty); bool is_abstract = (ty_flags & FX_TYPE_F_ABSTRACT) != 0; if (is_abstract) { diff --git a/bshell.core/cmdlets/get-verb.c b/bshell.core/cmdlets/get-verb.c index 659556d..57d90f1 100644 --- a/bshell.core/cmdlets/get-verb.c +++ b/bshell.core/cmdlets/get-verb.c @@ -17,7 +17,7 @@ FX_TYPE_CLASS_DECLARATION_END(bshell_get_verb) struct bshell_get_verb_p { fx_hashtable *c_verbs; - fx_iterator *c_it; + const fx_iterator *c_it; }; static enum bshell_status begin_processing(bshell_cmdlet *cmdlet) @@ -38,18 +38,18 @@ static enum bshell_status process_record( = fx_object_get_private(cmdlet, BSHELL_TYPE_GET_VERB); do { - fx_value v = fx_iterator_get_value(p->c_it); - if (!v.v_type) { + const fx_value *v = fx_iterator_get_value(p->c_it); + if (!v) { return BSHELL_SUCCESS; } fx_hashtable_item *item = NULL; - fx_value_get_object(&v, &item); + fx_value_get_object(v, &item); v = fx_hashtable_item_get_value(item); bshell_verb *verb = NULL; - fx_value_get_object(&v, &verb); + fx_value_get_object(v, &verb); fx_iterator_move_next(p->c_it); if (bshell_verb_is_reserved(verb)) { @@ -59,7 +59,7 @@ static enum bshell_status process_record( bshell_verb_ref(verb); bshell_pipeline_write_value( pipeline, - fx_value_copy_return(fx_hashtable_item_get_value(item)), + fx_value_ref_copy_return(v), false); break; } while (1);