diff options
Diffstat (limited to 'libguile/foreign.c')
-rw-r--r-- | libguile/foreign.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libguile/foreign.c b/libguile/foreign.c index 0cab6b8b0..3ac06591d 100644 --- a/libguile/foreign.c +++ b/libguile/foreign.c @@ -977,7 +977,7 @@ pack (const ffi_type * type, const void *loc, int return_value_p) SCM -scm_i_foreign_call (SCM foreign, const SCM *argv) +scm_i_foreign_call (SCM foreign, const union scm_vm_stack_element *argv) { /* FOREIGN is the pair that cif_to_procedure set as the 0th element of the objtable. */ @@ -1016,7 +1016,7 @@ scm_i_foreign_call (SCM foreign, const SCM *argv) args[i] = (void *) ROUND_UP ((scm_t_uintptr) data + off, cif->arg_types[i]->alignment); assert ((scm_t_uintptr) args[i] % cif->arg_types[i]->alignment == 0); - unpack (cif->arg_types[i], args[i], argv[i], 0); + unpack (cif->arg_types[i], args[i], argv[cif->nargs - i - 1].scm, 0); } /* Prepare space for the return value. On some platforms, such as |