1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-14 15:40:19 +02:00

VM syncs IP in pop-fluid

* libguile/vm-engine.c (pop-fluid): Sync IP before popping, as setting a
  fluid may allocate.
This commit is contained in:
Andy Wingo 2018-05-09 11:07:35 +02:00
parent 01f97cfc0a
commit 9a72e21262

View file

@ -1,5 +1,5 @@
/* Copyright (C) 2001, 2009, 2010, 2011, 2012, 2013,
* 2014, 2015 Free Software Foundation, Inc.
* 2014, 2015, 2018 Free Software Foundation, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
@ -2166,7 +2166,7 @@ VM_NAME (scm_i_thread *thread, struct scm_vm *vp,
*/
VM_DEFINE_OP (73, pop_fluid, "pop-fluid", OP1 (X32))
{
/* This function must not allocate. */
SYNC_IP ();
scm_dynstack_unwind_fluid (&thread->dynstack,
thread->dynamic_state);
NEXT (1);