mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-28 07:50:20 +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); \
|
FETCH_OFFSET (offset); \
|
||||||
if (p) \
|
if (p) \
|
||||||
ip += offset; \
|
ip += offset; \
|
||||||
|
if (offset < 0) \
|
||||||
|
VM_HANDLE_INTERRUPTS; \
|
||||||
NULLSTACK (1); \
|
NULLSTACK (1); \
|
||||||
DROP (); \
|
DROP (); \
|
||||||
NEXT; \
|
NEXT; \
|
||||||
|
@ -476,6 +478,8 @@ VM_DEFINE_INSTRUCTION (35, br, "br", 3, 0, 0)
|
||||||
scm_t_int32 offset;
|
scm_t_int32 offset;
|
||||||
FETCH_OFFSET (offset);
|
FETCH_OFFSET (offset);
|
||||||
ip += offset;
|
ip += offset;
|
||||||
|
if (offset < 0)
|
||||||
|
VM_HANDLE_INTERRUPTS;
|
||||||
NEXT;
|
NEXT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue