diff options
Diffstat (limited to 'libguile')
-rw-r--r-- | libguile/dynwind.c | 14 | ||||
-rw-r--r-- | libguile/dynwind.h | 25 |
2 files changed, 15 insertions, 24 deletions
diff --git a/libguile/dynwind.c b/libguile/dynwind.c index b34f9bef3..8e87f6098 100644 --- a/libguile/dynwind.c +++ b/libguile/dynwind.c @@ -154,7 +154,7 @@ static scm_t_bits tc16_winder; #define WINDER_MARK_P(w) (SCM_SMOB_FLAGS(w) & WINDER_F_MARK) void -scm_dynwind_begin (scm_t_dynwind_flags flags) +scm_dynwind_begin (int flags) { SCM f; SCM_NEWSMOB (f, tc16_frame, 0); @@ -192,8 +192,7 @@ scm_dynwind_end (void) } void -scm_dynwind_unwind_handler (void (*proc) (void *), void *data, - scm_t_wind_flags flags) +scm_dynwind_unwind_handler (void (*proc) (void *), void *data, int flags) { SCM w; SCM_NEWSMOB2 (w, tc16_winder, (scm_t_bits) proc, (scm_t_bits) data); @@ -203,8 +202,7 @@ scm_dynwind_unwind_handler (void (*proc) (void *), void *data, } void -scm_dynwind_rewind_handler (void (*proc) (void *), void *data, - scm_t_wind_flags flags) +scm_dynwind_rewind_handler (void (*proc) (void *), void *data, int flags) { SCM w; SCM_NEWSMOB2 (w, tc16_winder, (scm_t_bits) proc, (scm_t_bits) data); @@ -215,8 +213,7 @@ scm_dynwind_rewind_handler (void (*proc) (void *), void *data, } void -scm_dynwind_unwind_handler_with_scm (void (*proc) (SCM), SCM data, - scm_t_wind_flags flags) +scm_dynwind_unwind_handler_with_scm (void (*proc) (SCM), SCM data, int flags) { SCM w; scm_t_bits fl = ((flags&SCM_F_WIND_EXPLICITLY)? WINDER_F_EXPLICIT : 0); @@ -226,8 +223,7 @@ scm_dynwind_unwind_handler_with_scm (void (*proc) (SCM), SCM data, } void -scm_dynwind_rewind_handler_with_scm (void (*proc) (SCM), SCM data, - scm_t_wind_flags flags) +scm_dynwind_rewind_handler_with_scm (void (*proc) (SCM), SCM data, int flags) { SCM w; SCM_NEWSMOB2 (w, tc16_winder, (scm_t_bits) proc, SCM_UNPACK (data)); diff --git a/libguile/dynwind.h b/libguile/dynwind.h index b178bc429..a8209905f 100644 --- a/libguile/dynwind.h +++ b/libguile/dynwind.h @@ -43,26 +43,21 @@ SCM_INTERNAL void scm_init_dynwind (void); SCM_API void scm_swap_bindings (SCM vars, SCM vals); -typedef enum { - SCM_F_DYNWIND_REWINDABLE = (1 << 0) -} scm_t_dynwind_flags; +/* Flags for scm_dynwind_begin. */ +#define SCM_F_DYNWIND_REWINDABLE 1 -typedef enum { - SCM_F_WIND_EXPLICITLY = (1 << 0) -} scm_t_wind_flags; +/* Flags for scm_dynwind_unwind_handler(_with_scm) and + scm_dynwind_rewind_handler(_with_scm). */ +#define SCM_F_WIND_EXPLICITLY 1 -SCM_API void scm_dynwind_begin (scm_t_dynwind_flags); +SCM_API void scm_dynwind_begin (int); SCM_API void scm_dynwind_end (void); -SCM_API void scm_dynwind_unwind_handler (void (*func) (void *), void *data, - scm_t_wind_flags); -SCM_API void scm_dynwind_rewind_handler (void (*func) (void *), void *data, - scm_t_wind_flags); +SCM_API void scm_dynwind_unwind_handler (void (*) (void *), void *, int); +SCM_API void scm_dynwind_rewind_handler (void (*) (void *), void *, int); -SCM_API void scm_dynwind_unwind_handler_with_scm (void (*func) (SCM), SCM data, - scm_t_wind_flags); -SCM_API void scm_dynwind_rewind_handler_with_scm (void (*func) (SCM), SCM data, - scm_t_wind_flags); +SCM_API void scm_dynwind_unwind_handler_with_scm (void (*) (SCM), SCM, int); +SCM_API void scm_dynwind_rewind_handler_with_scm (void (*) (SCM), SCM, int); SCM_API void scm_dynwind_free (void *mem); |