diff options
author | Andy Wingo <wingo@pobox.com> | 2008-09-25 12:08:54 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2008-09-25 12:08:54 +0200 |
commit | cd829416b2bdf19e95a58b48587acebac876f7dd (patch) | |
tree | 24c0bd5887dadf760cca6446e1534ba3286687d3 /libguile/vm-i-system.c | |
parent | ff1592a106f9a28dcbbd77939db0b2c1f9b27064 (diff) | |
download | guile-cd829416b2bdf19e95a58b48587acebac876f7dd.tar.gz |
fix handling of multiple values from c functions
* libguile/vm-i-system.c (mv-call, goto/cc): Fix handling of values
returns from C or interpreted functions.
Diffstat (limited to 'libguile/vm-i-system.c')
-rw-r--r-- | libguile/vm-i-system.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libguile/vm-i-system.c b/libguile/vm-i-system.c index f2d8b659c..20a0b980d 100644 --- a/libguile/vm-i-system.c +++ b/libguile/vm-i-system.c @@ -770,7 +770,7 @@ VM_DEFINE_INSTRUCTION (mv_call, "mv-call", 3, -1, 1) POP (values); values = scm_struct_ref (values, SCM_INUM0); len = scm_length (values); - while (!SCM_NULLP (values)) + for (; !SCM_NULLP (values); values = SCM_CDR (values)) PUSH (SCM_CAR (values)); PUSH (len); ip += offset; @@ -884,7 +884,7 @@ VM_DEFINE_INSTRUCTION (goto_cc, "goto/cc", 0, 1, 1) SCM values; values = scm_struct_ref (cont, SCM_INUM0); nvalues = scm_ilength (values); - while (!SCM_NULLP (values)) + for (; !SCM_NULLP (values); values = SCM_CDR (values)) PUSH (SCM_CAR (values)); goto vm_return_values; } |