mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-02 23:50:56 -08:00
Recast some function pointers as (void*) to solve some problems with the C++ compiler.
This commit is contained in:
parent
3246405dcc
commit
db9bc0763a
2 changed files with 19 additions and 19 deletions
26
src/c/cfun.d
26
src/c/cfun.d
|
|
@ -18,12 +18,12 @@
|
|||
#include <string.h> /* for memmove() */
|
||||
|
||||
cl_object
|
||||
cl_make_cfun(cl_object (*self)(), cl_object name, cl_object cblock, int narg)
|
||||
cl_make_cfun(void *c_function, cl_object name, cl_object cblock, int narg)
|
||||
{
|
||||
cl_object cf;
|
||||
|
||||
cf = cl_alloc_object(t_cfun);
|
||||
cf->cfun.entry = self;
|
||||
cf->cfun.entry = c_function;
|
||||
cf->cfun.name = name;
|
||||
cf->cfun.block = cblock;
|
||||
cf->cfun.narg = narg;
|
||||
|
|
@ -33,12 +33,12 @@ cl_make_cfun(cl_object (*self)(), cl_object name, cl_object cblock, int narg)
|
|||
}
|
||||
|
||||
cl_object
|
||||
cl_make_cfun_va(cl_objectfn self, cl_object name, cl_object cblock)
|
||||
cl_make_cfun_va(void *c_function, cl_object name, cl_object cblock)
|
||||
{
|
||||
cl_object cf;
|
||||
|
||||
cf = cl_alloc_object(t_cfun);
|
||||
cf->cfun.entry = self;
|
||||
cf->cfun.entry = c_function;
|
||||
cf->cfun.name = name;
|
||||
cf->cfun.block = cblock;
|
||||
cf->cfun.narg = -1;
|
||||
|
|
@ -46,39 +46,39 @@ cl_make_cfun_va(cl_objectfn self, cl_object name, cl_object cblock)
|
|||
}
|
||||
|
||||
cl_object
|
||||
cl_make_cclosure_va(cl_objectfn self, cl_object env, cl_object block)
|
||||
cl_make_cclosure_va(void *c_function, cl_object env, cl_object block)
|
||||
{
|
||||
cl_object cc;
|
||||
|
||||
cc = cl_alloc_object(t_cclosure);
|
||||
cc->cclosure.entry = self;
|
||||
cc->cclosure.entry = c_function;
|
||||
cc->cclosure.env = env;
|
||||
cc->cclosure.block = block;
|
||||
return(cc);
|
||||
}
|
||||
|
||||
void
|
||||
cl_def_c_function(cl_object sym, cl_object (*self)(), int narg)
|
||||
cl_def_c_function(cl_object sym, void *c_function, int narg)
|
||||
{
|
||||
si_fset(2, sym,
|
||||
cl_make_cfun(self, sym, symbol_value(@'si::*cblock*'), narg));
|
||||
cl_make_cfun(c_function, sym, symbol_value(@'si::*cblock*'), narg));
|
||||
}
|
||||
|
||||
void
|
||||
cl_def_c_macro(cl_object sym, cl_object (*self)(), int narg)
|
||||
cl_def_c_macro(cl_object sym, void *c_function, int narg)
|
||||
{
|
||||
si_fset(3, sym,
|
||||
(narg >= 0)?
|
||||
cl_make_cfun(self, sym, symbol_value(@'si::*cblock*'), 2):
|
||||
cl_make_cfun_va(self, sym, symbol_value(@'si::*cblock*')),
|
||||
cl_make_cfun(c_function, sym, symbol_value(@'si::*cblock*'), 2):
|
||||
cl_make_cfun_va(c_function, sym, symbol_value(@'si::*cblock*')),
|
||||
Ct);
|
||||
}
|
||||
|
||||
void
|
||||
cl_def_c_function_va(cl_object sym, cl_objectfn self)
|
||||
cl_def_c_function_va(cl_object sym, void *c_function)
|
||||
{
|
||||
si_fset(2, sym,
|
||||
cl_make_cfun_va(self, sym, symbol_value(@'si::*cblock*')));
|
||||
cl_make_cfun_va(c_function, sym, symbol_value(@'si::*cblock*')));
|
||||
}
|
||||
|
||||
cl_object
|
||||
|
|
|
|||
|
|
@ -287,12 +287,12 @@ extern cl_object si_compiled_function_name(cl_object fun);
|
|||
extern cl_object si_compiled_function_block(cl_object fun);
|
||||
extern cl_object cl_function_lambda_expression(cl_object fun);
|
||||
|
||||
extern cl_object cl_make_cfun(cl_object (*self)(), cl_object name, cl_object block, int narg);
|
||||
extern cl_object cl_make_cfun_va(cl_object (*self)(cl_narg narg,...), cl_object name, cl_object block);
|
||||
extern cl_object cl_make_cclosure_va(cl_object (*self)(cl_narg narg,...), cl_object env, cl_object block);
|
||||
extern void cl_def_c_function(cl_object sym, cl_object (*self)(), int narg);
|
||||
extern void cl_def_c_macro(cl_object sym, cl_object (*self)(), int narg);
|
||||
extern void cl_def_c_function_va(cl_object sym, cl_object (*self)(cl_narg narg,...));
|
||||
extern cl_object cl_make_cfun(void *c_function, cl_object name, cl_object block, int narg);
|
||||
extern cl_object cl_make_cfun_va(void *c_function, cl_object name, cl_object block);
|
||||
extern cl_object cl_make_cclosure_va(void *c_function, cl_object env, cl_object block);
|
||||
extern void cl_def_c_function(cl_object sym, void *c_function, int narg);
|
||||
extern void cl_def_c_macro(cl_object sym, void *c_function, int narg);
|
||||
extern void cl_def_c_function_va(cl_object sym, void *c_function);
|
||||
|
||||
|
||||
/* character.c */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue