~ chicken-core (chicken-5) fc747adfd69887c86038993f8fc65def25981388
commit fc747adfd69887c86038993f8fc65def25981388 Author: Peter Bex <peter@more-magic.net> AuthorDate: Sat Aug 22 17:58:37 2015 +0200 Commit: Peter Bex <peter@more-magic.net> CommitDate: Sat Aug 22 19:37:26 2015 +0200 corrected apply diff --git a/runtime.c b/runtime.c index 48845702..984f4ae1 100644 --- a/runtime.c +++ b/runtime.c @@ -7147,15 +7147,18 @@ void C_ccall C_apply(C_word c, C_word *av) ++m; } - C_temporary_stack -= n; + if(c > 4) { + C_temporary_stack -= n - 1; - if(C_temporary_stack < C_temporary_stack_limit) - barf(C_TOO_MANY_PARAMETERS_ERROR, "apply"); + if(C_temporary_stack < C_temporary_stack_limit) + barf(C_TOO_MANY_PARAMETERS_ERROR, "apply"); - C_memcpy(C_temporary_stack, av + 3, n * sizeof(C_word)); - --m; + C_memcpy(C_temporary_stack, av + 3, n * sizeof(C_word)); + } - ((C_proc)(void *)C_block_item(fn, 0))(m, C_temporary_stack); + C_save(k); + C_save(fn); + ((C_proc)(void *)C_block_item(fn, 0))(m + 1, C_temporary_stack); }Trap