summaryrefslogtreecommitdiff
path: root/libguile/vm.h
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2018-06-26 16:39:34 +0200
committerAndy Wingo <wingo@pobox.com>2018-06-26 16:39:34 +0200
commit770360e06645528ede0595f7efb553e7e0ac3bfd (patch)
tree917ce04305775ba53eb1b3591850a2d4d2f4feb7 /libguile/vm.h
parente7778c62aa35ae10743cb4680df0bb3440163e26 (diff)
downloadguile-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.h5
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);