summaryrefslogtreecommitdiff
path: root/libguile/vm-engine.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2018-01-08 15:07:42 +0100
committerAndy Wingo <wingo@pobox.com>2018-01-08 15:19:45 +0100
commitb294a1e7d7007755bfb1017495d4eb81fe62b53c (patch)
treef60188dcb364a5b23bc9f26b112851a51251f98c /libguile/vm-engine.c
parent55a8483435de094753b6c04a34a3942678f5c835 (diff)
downloadguile-b294a1e7d7007755bfb1017495d4eb81fe62b53c.tar.gz
Sync IP before allocating closures
* libguile/vm-engine.c (vm_engine): Sync IP before allocating closures.
Diffstat (limited to 'libguile/vm-engine.c')
-rw-r--r--libguile/vm-engine.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libguile/vm-engine.c b/libguile/vm-engine.c
index 997fdcc39..a47e1b11a 100644
--- a/libguile/vm-engine.c
+++ b/libguile/vm-engine.c
@@ -1552,6 +1552,7 @@ VM_NAME (scm_i_thread *thread, struct scm_vm *vp,
UNPACK_24 (ip[2], nfree);
// FIXME: Assert range of nfree?
+ SYNC_IP ();
closure = scm_inline_words (thread, scm_tc7_program | (nfree << 16),
nfree + 2);
SCM_SET_CELL_WORD_1 (closure, ip + offset);