diff options
Diffstat (limited to 'libguile/dynwind.c')
-rw-r--r-- | libguile/dynwind.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libguile/dynwind.c b/libguile/dynwind.c index 5eccb176f..18e38b995 100644 --- a/libguile/dynwind.c +++ b/libguile/dynwind.c @@ -257,6 +257,11 @@ scm_i_dowinds (SCM to, long delta, void (*turn_func) (void *), void *data) if (WINDER_REWIND_P (wind_elt)) WINDER_PROC (wind_elt) (WINDER_DATA (wind_elt)); } + else if (SCM_WITH_FLUIDS_P (wind_elt)) + { + scm_i_swap_with_fluids (wind_elt, + SCM_I_CURRENT_THREAD->dynamic_state); + } else { wind_key = SCM_CAR (wind_elt); @@ -294,6 +299,11 @@ scm_i_dowinds (SCM to, long delta, void (*turn_func) (void *), void *data) if (!WINDER_REWIND_P (wind_elt)) WINDER_PROC (wind_elt) (WINDER_DATA (wind_elt)); } + else if (SCM_WITH_FLUIDS_P (wind_elt)) + { + scm_i_swap_with_fluids (wind_elt, + SCM_I_CURRENT_THREAD->dynamic_state); + } else { wind_key = SCM_CAR (wind_elt); |