patch 8.2.0500: using the same loop in many places
Problem: Using the same loop in many places.
Solution: Define more FOR_ALL macros. (Yegappan Lakshmanan, closes #5339)
diff --git a/src/userfunc.c b/src/userfunc.c
index 5f98f18..62003a8 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -792,7 +792,7 @@
vars_clear(&fc->l_avars.dv_hashtab);
// Free the a:000 variables.
- for (li = fc->l_varlist.lv_first; li != NULL; li = li->li_next)
+ FOR_ALL_LIST_ITEMS(&fc->l_varlist, li)
clear_tv(&li->li_tv);
free_funccal(fc);
@@ -851,7 +851,7 @@
free_fc = FALSE;
// Make a copy of the a:000 items, since we didn't do that above.
- for (li = fc->l_varlist.lv_first; li != NULL; li = li->li_next)
+ FOR_ALL_LIST_ITEMS(&fc->l_varlist, li)
copy_tv(&li->li_tv, &li->li_tv);
}
@@ -1640,7 +1640,7 @@
int r = 0;
range_list_materialize(l);
- for (item = l->lv_first; item != NULL; item = item->li_next)
+ FOR_ALL_LIST_ITEMS(args->vval.v_list, item)
{
if (argc == MAX_FUNC_ARGS - (partial == NULL ? 0 : partial->pt_argc))
{