mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 11:40:18 +02:00
vm: handle interrupts on backwards jumps
* libguile/vm-i-system.c (BR, br): Handle interrupts on backwards jumps, so we can Ctrl-C an endless loop.
This commit is contained in:
parent
e8c3777214
commit
5b09b37f81
1 changed files with 4 additions and 0 deletions
|
@ -466,6 +466,8 @@ VM_DEFINE_INSTRUCTION (34, long_toplevel_set, "long-toplevel-set", 2, 1, 0)
|
|||
FETCH_OFFSET (offset); \
|
||||
if (p) \
|
||||
ip += offset; \
|
||||
if (offset < 0) \
|
||||
VM_HANDLE_INTERRUPTS; \
|
||||
NULLSTACK (1); \
|
||||
DROP (); \
|
||||
NEXT; \
|
||||
|
@ -476,6 +478,8 @@ VM_DEFINE_INSTRUCTION (35, br, "br", 3, 0, 0)
|
|||
scm_t_int32 offset;
|
||||
FETCH_OFFSET (offset);
|
||||
ip += offset;
|
||||
if (offset < 0)
|
||||
VM_HANDLE_INTERRUPTS;
|
||||
NEXT;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue