diff --git a/src/foreign/foreign.c b/src/foreign/foreign.c index 900596ba5a..78bc3f62af 100644 --- a/src/foreign/foreign.c +++ b/src/foreign/foreign.c @@ -2333,6 +2333,8 @@ void do_ptr_finalizer(void *p, void *finalizer) #define MAX_QUICK_ARGS 16 +typedef void(*VoidFun)(); + Scheme_Object *ffi_do_call(void *data, int argc, Scheme_Object *argv[]) /* data := {name, c-function, itypes, otype, cif} */ { @@ -2419,7 +2421,7 @@ Scheme_Object *ffi_do_call(void *data, int argc, Scheme_Object *argv[]) } } /* Finally, call the function */ - ffi_call(cif, (void(*)())W_OFFSET(c_func, cfoff), p, avalues); + ffi_call(cif, (VoidFun)W_OFFSET(c_func, cfoff), p, avalues); if (ivals != stack_ivals) free(ivals); ivals = NULL; /* no need now to hold on to this */ for (i=0; i