summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--eval.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index 986f0b37..e5f08407 100644
--- a/eval.c
+++ b/eval.c
@@ -5288,6 +5288,7 @@ static val map_common(val self, val fun, struct args *lists,
return map_fn(fun, args_atz(lists, 0));
} else {
cnum i, idx, argc = args_count(lists, self);
+ val arg0 = args_at(lists, 0);
seq_iter_t *iter_array = coerce(seq_iter_t *,
alloca(argc * sizeof *iter_array));
args_decl(args_fun, max(argc, ARGS_MIN));
@@ -5308,7 +5309,7 @@ static val map_common(val self, val fun, struct args *lists,
seq_iter_t *iter = &iter_array[i];
if (!seq_get(iter, &elem))
- return collect_fn != 0 ? make_like(out, args_at(lists, 0)) : nil;
+ return collect_fn != 0 ? make_like(out, arg0) : nil;
args_fun->arg[i] = elem;
}