summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Vollmer <mvo@zagadka.de>2004-07-23 15:34:07 +0000
committerMarius Vollmer <mvo@zagadka.de>2004-07-23 15:34:07 +0000
commit928e0f421070bb610f3375d5808a6378d5edfa1b (patch)
tree48927b94bb7f19cb56757aa8229a1ef2e97a0a19
parent3aa13a0579ec82845fa5374ac3fdf673d874d3e0 (diff)
downloadguile-928e0f421070bb610f3375d5808a6378d5edfa1b.tar.gz
(scm_i_dowinds): Removed unused code that would call the unexisting
scm_cross_dynwind_binding_scope for inums on the windlist.
-rw-r--r--libguile/dynwind.c84
1 files changed, 34 insertions, 50 deletions
diff --git a/libguile/dynwind.c b/libguile/dynwind.c
index 8dc5a4e03..ff46c1720 100644
--- a/libguile/dynwind.c
+++ b/libguile/dynwind.c
@@ -284,42 +284,34 @@ scm_i_dowinds (SCM to, long delta, void (*turn_func) (void *), void *data)
scm_i_dowinds (SCM_CDR (to), 1 + delta, turn_func, data);
wind_elt = SCM_CAR (to);
-#if 0
- if (SCM_INUMP (wind_elt))
+ if (FRAME_P (wind_elt))
{
- scm_cross_dynwind_binding_scope (wind_elt, 0);
+ if (!FRAME_REWINDABLE_P (wind_elt))
+ scm_misc_error ("dowinds",
+ "cannot invoke continuation from this context",
+ SCM_EOL);
+ }
+ else if (WINDER_P (wind_elt))
+ {
+ if (WINDER_REWIND_P (wind_elt))
+ WINDER_PROC (wind_elt) (WINDER_DATA (wind_elt));
}
else
-#endif
{
- if (FRAME_P (wind_elt))
- {
- if (!FRAME_REWINDABLE_P (wind_elt))
- scm_misc_error ("dowinds",
- "cannot invoke continuation from this context",
- SCM_EOL);
- }
- else if (WINDER_P (wind_elt))
- {
- if (WINDER_REWIND_P (wind_elt))
- WINDER_PROC (wind_elt) (WINDER_DATA (wind_elt));
- }
- else
+ wind_key = SCM_CAR (wind_elt);
+ /* key = #t | symbol | thunk | list of variables */
+ if (SCM_NIMP (wind_key))
{
- wind_key = SCM_CAR (wind_elt);
- /* key = #t | symbol | thunk | list of variables */
- if (SCM_NIMP (wind_key))
+ if (SCM_CONSP (wind_key))
{
- if (SCM_CONSP (wind_key))
- {
- if (SCM_VARIABLEP (SCM_CAR (wind_key)))
- scm_swap_bindings (wind_key, SCM_CDR (wind_elt));
- }
- else if (SCM_TYP3 (wind_key) == scm_tc3_closure)
- scm_call_0 (wind_key);
+ if (SCM_VARIABLEP (SCM_CAR (wind_key)))
+ scm_swap_bindings (wind_key, SCM_CDR (wind_elt));
}
+ else if (SCM_TYP3 (wind_key) == scm_tc3_closure)
+ scm_call_0 (wind_key);
}
}
+
scm_dynwinds = to;
}
else
@@ -330,38 +322,30 @@ scm_i_dowinds (SCM to, long delta, void (*turn_func) (void *), void *data)
wind_elt = SCM_CAR (scm_dynwinds);
scm_dynwinds = SCM_CDR (scm_dynwinds);
-#if 0
- if (SCM_INUMP (wind_elt))
+ if (FRAME_P (wind_elt))
{
- scm_cross_dynwind_binding_scope (wind_elt, 0);
+ /* Nothing to do. */
+ }
+ else if (WINDER_P (wind_elt))
+ {
+ if (!WINDER_REWIND_P (wind_elt))
+ WINDER_PROC (wind_elt) (WINDER_DATA (wind_elt));
}
else
-#endif
{
- if (FRAME_P (wind_elt))
- {
- /* Nothing to do. */
- }
- else if (WINDER_P (wind_elt))
- {
- if (!WINDER_REWIND_P (wind_elt))
- WINDER_PROC (wind_elt) (WINDER_DATA (wind_elt));
- }
- else
+ wind_key = SCM_CAR (wind_elt);
+ if (SCM_NIMP (wind_key))
{
- wind_key = SCM_CAR (wind_elt);
- if (SCM_NIMP (wind_key))
+ if (SCM_CONSP (wind_key))
{
- if (SCM_CONSP (wind_key))
- {
- if (SCM_VARIABLEP (SCM_CAR (wind_key)))
- scm_swap_bindings (wind_key, SCM_CDR (wind_elt));
- }
- else if (SCM_TYP3 (wind_key) == scm_tc3_closure)
- scm_call_0 (SCM_CDR (wind_elt));
+ if (SCM_VARIABLEP (SCM_CAR (wind_key)))
+ scm_swap_bindings (wind_key, SCM_CDR (wind_elt));
}
+ else if (SCM_TYP3 (wind_key) == scm_tc3_closure)
+ scm_call_0 (SCM_CDR (wind_elt));
}
}
+
delta--;
goto tail; /* scm_dowinds(to, delta-1); */
}