Sync IP before allocating closures
authorAndy Wingo <wingo@pobox.com>
Mon, 8 Jan 2018 14:07:42 +0000 (15:07 +0100)
committerAndy Wingo <wingo@igalia.com>
Fri, 26 Jan 2018 08:49:00 +0000 (09:49 +0100)
* libguile/vm-engine.c (vm_engine): Sync IP before allocating closures.

libguile/vm-engine.c

index 6c88ebf11ac049803708423ba2ac396b91b27078..9509cd64353fb03a3ad0fe1ee4d2d4f60aea148c 100644 (file)
@@ -1646,6 +1646,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);