summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xgcl/o/array.c2
-rwxr-xr-xgcl/o/cmpaux.c2
-rwxr-xr-xgcl/o/eval.c2
-rwxr-xr-xgcl/o/makefun.c15
4 files changed, 12 insertions, 9 deletions
diff --git a/gcl/o/array.c b/gcl/o/array.c
index ccfefd78..099a70a9 100755
--- a/gcl/o/array.c
+++ b/gcl/o/array.c
@@ -1344,7 +1344,7 @@ DEFUN("ARRAY-TOTAL-SIZE",fixnum,fLarray_total_size,LISP,1,1,NONE,IO,OO,OO,OO,(ob
DEFUN("ASET-BY-CURSOR",object,fSaset_by_cursor,SI,3,3,NONE,OO,OO,OO,OO,(object array,object val,object cursor),"") {
- object x=(VFUN_NARGS=-3,FFN(fSaset(val,array,cursor)));
+ object x=(VFUN_NARGS=-3,FFN(fSaset)(val,array,cursor));
RETURN1(x);
}
diff --git a/gcl/o/cmpaux.c b/gcl/o/cmpaux.c
index 451682a6..a33cb438 100755
--- a/gcl/o/cmpaux.c
+++ b/gcl/o/cmpaux.c
@@ -309,7 +309,7 @@ object_to_fixnum(object x)
case t_fixnum:
i = fix(x); break;
case t_bignum:
- i = FFN(fSmpz_get_si(x)); break;
+ i = FFN(fSmpz_get_si)(x); break;
break;
case t_ratio:
i = number_to_double(x); break;
diff --git a/gcl/o/eval.c b/gcl/o/eval.c
index 7c3b4f3b..c36db411 100755
--- a/gcl/o/eval.c
+++ b/gcl/o/eval.c
@@ -997,6 +997,8 @@ DEFUNM("EVAL-SRC",object,fSeval_src,SI,0,63,NONE,OO,OO,OO,OO,(object first,...),
}
+void *feval_src=(void *)FFN(eval_src);
+
DEFUN("FSET-IN",object,fSfset_in,SI,2,2,NONE,OO,OO,OO,OO,(object sym,object src),"") {
object x;
diff --git a/gcl/o/makefun.c b/gcl/o/makefun.c
index 989e6fa5..670cc824 100755
--- a/gcl/o/makefun.c
+++ b/gcl/o/makefun.c
@@ -39,6 +39,7 @@ object
make_fun(void *addr,object data,object call,object env,ufixnum argd,ufixnum sizes) {
object x;
+ extern void *feval_src;
x=alloc_object(t_function);
x->fun.fun_self=addr;
@@ -51,7 +52,7 @@ make_fun(void *addr,object data,object call,object env,ufixnum argd,ufixnum size
x->fun.fun_vv =POP_BITS(sizes,1);
x->fun.fun_env=def_env;
- if ((void *)x->fun.fun_self==(void *)FFN(fSeval_src))
+ if ((void *)x->fun.fun_self==feval_src)
x->d.tt=2;
FFN(fSset_function_environment)(x,env);
@@ -67,12 +68,6 @@ DEFUN("ANONYMOUS-CLOSURE",object,fSanonymous_closure,SI,0,0,NONE,OO,OO,OO,OO,(),
RETURN1(f->fun.fun_env[0]->c.c_car);
}
-DEFUN("MAKE-ANONYMOUS-CLOSURE",object,fSmake_anonymous_closure,SI,0,0,NONE,OO,OO,OO,OO,(),"") {
-
- RETURN1(FFN(fSinit_function)(list(5,Cnil,Cnil,Cnil,Cnil,Cnil),(void *)fSanonymous_closure,Cnil,MMcons(MMcons(Cnil,Cnil),Cnil),-1,0,0));
-
-}
-
DEFUN("FUNCTION-ENVIRONMENT",object,fSfunction_environment,SI,1,1,NONE,OO,OO,OO,OO,(object f),"") {
RETURN1(f->fun.fun_env[0]);
@@ -122,6 +117,12 @@ fSinit_function(object x,object y,object z,object w,fixnum a,fixnum b,fixnum c)
}
#endif
+DEFUN("MAKE-ANONYMOUS-CLOSURE",object,fSmake_anonymous_closure,SI,0,0,NONE,OO,OO,OO,OO,(),"") {
+
+ RETURN1(FFN(fSinit_function)(list(5,Cnil,Cnil,Cnil,Cnil,Cnil),(void *)fSanonymous_closure,Cnil,MMcons(MMcons(Cnil,Cnil),Cnil),-1,0,0));
+
+}
+
DEFUN("SET-KEY-STRUCT",object,fSset_key_struct,SI,1,1,NONE,OO,OO,OO,OO,(object key_struct_ind),
"Called inside the loader. The keystruct is set up in the file with \
indexes rather than the actual entries. We change these indices to \