diff options
author | Camm Maguire <camm@debian.org> | 2014-04-14 16:21:21 +0000 |
---|---|---|
committer | Camm Maguire <camm@debian.org> | 2014-04-14 16:21:21 +0000 |
commit | 241aef4c33cc38ec23b175cc61521afbae607660 (patch) | |
tree | 27a5d4c336f96028d1d52e7daee15e0d7d9c80ec | |
parent | e1eec8e0eff52030f6c62ed08e5fabbff4ec1ad0 (diff) | |
download | gcl-241aef4c33cc38ec23b175cc61521afbae607660.tar.gz |
FFN fixes
-rwxr-xr-x | gcl/o/array.c | 2 | ||||
-rwxr-xr-x | gcl/o/cmpaux.c | 2 | ||||
-rwxr-xr-x | gcl/o/eval.c | 2 | ||||
-rwxr-xr-x | gcl/o/makefun.c | 15 |
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 \ |