diff options
author | Andy Wingo <wingo@pobox.com> | 2018-06-26 16:39:34 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2018-06-26 16:39:34 +0200 |
commit | 770360e06645528ede0595f7efb553e7e0ac3bfd (patch) | |
tree | 917ce04305775ba53eb1b3591850a2d4d2f4feb7 /libguile/vm.h | |
parent | e7778c62aa35ae10743cb4680df0bb3440163e26 (diff) | |
download | guile-770360e06645528ede0595f7efb553e7e0ac3bfd.tar.gz |
Refactors to abort-to-prompt implementation
* libguile/control.c (scm_abort_to_prompt_star)
* libguile/throw.c (abort_to_prompt): Pass prompt tag and argv in one
array.
* libguile/vm.c (scm_i_vm_abort): Reimplement as a call into the VM's
abort_to_prompt builtin.
(vm_abort): New helper, a copy of scm_i_vm_abort. Will allow us to
avoid some arg shuffling when aborting from the VM.
* libguile/vm.h: Remove setjmp include and simplify scm_i_vm_abort
decl.
Diffstat (limited to 'libguile/vm.h')
-rw-r--r-- | libguile/vm.h | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/libguile/vm.h b/libguile/vm.h index 7d4f34294..cf777a6ca 100644 --- a/libguile/vm.h +++ b/libguile/vm.h @@ -20,8 +20,6 @@ #ifndef _SCM_VM_H_ #define _SCM_VM_H_ -#include <setjmp.h> - #include <libguile/gc.h> #include <libguile/programs.h> @@ -122,8 +120,7 @@ SCM_INTERNAL SCM scm_i_vm_capture_stack (union scm_vm_stack_element *stack_top, uint32_t *ra, scm_t_dynstack *dynstack, uint32_t flags); -SCM_INTERNAL void scm_i_vm_abort (struct scm_vm *vp, SCM tag, size_t n, SCM *argv, - jmp_buf *registers) SCM_NORETURN; +SCM_INTERNAL void scm_i_vm_abort (SCM *tag_and_argv, size_t n) SCM_NORETURN; SCM_INTERNAL int scm_i_vm_cont_to_frame (SCM cont, struct scm_frame *frame); SCM_INTERNAL void scm_i_vm_cont_print (SCM x, SCM port, scm_print_state *pstate); |