summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--eval.c4
-rw-r--r--eval.h2
-rw-r--r--lib.c13
3 files changed, 10 insertions, 9 deletions
diff --git a/eval.c b/eval.c
index 3accea39..a8f61cff 100644
--- a/eval.c
+++ b/eval.c
@@ -1023,8 +1023,10 @@ val set_dyn_env(val de)
return old;
}
-val funcall_interp(val env, val fun, struct args *args)
+val funcall_interp(val interp_fun, struct args *args)
{
+ val env = interp_fun->f.env;
+ val fun = interp_fun->f.f.interp_fun;
val def = cdr(fun);
val params = car(def);
val body = cdr(def);
diff --git a/eval.h b/eval.h
index 792c6efc..7dd51121 100644
--- a/eval.h
+++ b/eval.h
@@ -43,7 +43,7 @@ loc lookup_var_l(val env, val sym);
loc lookup_global_var_l(val sym);
val lookup_fun(val env, val sym);
val set_dyn_env(val de);
-val funcall_interp(val env, val fun, struct args *);
+val funcall_interp(val interp_fun, struct args *);
val boundp(val sym);
val fboundp(val sym);
val special_operator_p(val sym);
diff --git a/lib.c b/lib.c
index f5ec840f..bd172bf8 100644
--- a/lib.c
+++ b/lib.c
@@ -4950,7 +4950,7 @@ val generic_funcall(val fun, struct args *args_in)
switch (fun->f.functype) {
case FINTERP:
- return funcall_interp(fun->f.env, fun->f.f.interp_fun, args);
+ return funcall_interp(fun, args);
case F0:
return fun->f.f.f0v(fun->f.env, args);
case F1:
@@ -5000,7 +5000,7 @@ val funcall(val fun)
switch (fun->f.functype) {
case FINTERP:
- return funcall_interp(fun->f.env, fun->f.f.interp_fun, args);
+ return funcall_interp(fun, args);
case F0:
return fun->f.f.f0v(fun->f.env, args);
case N0:
@@ -5035,7 +5035,7 @@ val funcall1(val fun, val arg)
switch (fun->f.functype) {
case FINTERP:
args_add(args, arg);
- return funcall_interp(fun->f.env, fun->f.f.interp_fun, args);
+ return funcall_interp(fun, args);
case F0:
args_add(args, arg);
return fun->f.f.f0v(fun->f.env, args);
@@ -5076,7 +5076,7 @@ val funcall2(val fun, val arg1, val arg2)
switch (fun->f.functype) {
case FINTERP:
args_add2(args, arg1, arg2);
- return funcall_interp(fun->f.env, fun->f.f.interp_fun, args);
+ return funcall_interp(fun, args);
case F0:
args_add2(args, arg1, arg2);
return fun->f.f.f0v(fun->f.env, args);
@@ -5123,7 +5123,7 @@ val funcall3(val fun, val arg1, val arg2, val arg3)
switch (fun->f.functype) {
case FINTERP:
args_add3(args, arg1, arg2, arg3);
- return funcall_interp(fun->f.env, fun->f.f.interp_fun, args);
+ return funcall_interp(fun, args);
case F0:
args_add3(args, arg1, arg2, arg3);
return fun->f.f.f0v(fun->f.env, args);
@@ -5176,8 +5176,7 @@ val funcall4(val fun, val arg1, val arg2, val arg3, val arg4)
switch (fun->f.functype) {
case FINTERP:
args_add4(args, arg1, arg2, arg3, arg4);
- return funcall_interp(fun->f.env, fun->f.f.interp_fun,
- args);
+ return funcall_interp(fun, args);
case F0:
args_add4(args, arg1, arg2, arg3, arg4);
return fun->f.f.f0v(fun->f.env, args);