From a5e550dce9bb43209dbbdd6d9d7618e706f483ba Mon Sep 17 00:00:00 2001 From: jjgarcia Date: Sat, 11 Aug 2001 13:30:29 +0000 Subject: [PATCH] Fix va_lambda_apply() and add va_gcall(). --- src/c/interpreter.d | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/c/interpreter.d b/src/c/interpreter.d index 83ed04c82..43b9536e7 100644 --- a/src/c/interpreter.d +++ b/src/c/interpreter.d @@ -255,11 +255,28 @@ get_sp_at(cl_index where) { cl_object va_lambda_apply(int narg, cl_object fun, va_list args) { - cl_object sp = get_sp(); - while (narg--) + cl_object out; + int i; + for (i=narg; i; i--) push1(cl_nextarg(args)); - lambda_apply(narg, fun, sp); + out = lambda_apply(narg, fun, get_sp()-narg); + dec_sp_index(narg); + return out; } + +#ifdef CLOS +cl_object +va_gcall(int narg, cl_object fun, va_list args) +{ + cl_object out; + int i; + for (i=narg; i; i--) + push1(cl_nextarg(args)); + out = gcall(narg, fun, get_sp()-narg); + dec_sp_index(narg); + return out; +} +#endif #endif /* -------------------- AIDS TO THE INTERPRETER -------------------- */