summaryrefslogtreecommitdiff
path: root/libguile/vm.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2018-06-27 18:21:04 +0200
committerAndy Wingo <wingo@pobox.com>2018-06-27 18:21:04 +0200
commit18431e6e63243eebefa3e77684d7b75e69c0fcb5 (patch)
tree9d96e3884db7276af43bdf72fcf515473db824f5 /libguile/vm.c
parentfd4eb1475106c4b8140634955e336a012787e28a (diff)
downloadguile-18431e6e63243eebefa3e77684d7b75e69c0fcb5.tar.gz
Refactor handling of active VM registers
* libguile/threads.h (scm_thread): Remove unused jmp_buf regs member. * libguile/vm.h (struct scm_vm): Rename resumable_prompt_cookie to just "registers"; we know it's a jmp_buf pointer. * libguile/vm.c (scm_call_n): * libguile/throw.c (catch): * libguile/eval.c (eval): * libguile/control.c (scm_suspendable_continuation_p): Adapt to cookie renaming.
Diffstat (limited to 'libguile/vm.c')
-rw-r--r--libguile/vm.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/libguile/vm.c b/libguile/vm.c
index 3a603e4b9..442bd72c3 100644
--- a/libguile/vm.c
+++ b/libguile/vm.c
@@ -1411,7 +1411,7 @@ scm_call_n (SCM proc, SCM *argv, size_t nargs)
{
jmp_buf registers;
int resume;
- const void *prev_cookie = vp->resumable_prompt_cookie;
+ jmp_buf *prev_registers = thread->vm.registers;
SCM ret;
resume = setjmp (registers);
@@ -1422,9 +1422,9 @@ scm_call_n (SCM proc, SCM *argv, size_t nargs)
vm_dispatch_abort_hook (vp);
}
- vp->resumable_prompt_cookie = &registers;
+ thread->vm.registers = &registers;
ret = vm_engines[vp->engine](thread, &registers, resume);
- vp->resumable_prompt_cookie = prev_cookie;
+ thread->vm.registers = prev_registers;
return ret;
}