summaryrefslogtreecommitdiff
path: root/libguile
diff options
context:
space:
mode:
authorNeil Jerram <neil@ossau.uklinux.net>2009-10-07 22:14:38 +0100
committerNeil Jerram <neil@ossau.uklinux.net>2009-10-07 22:14:38 +0100
commit98241dc53fc66ec86c01b9eeea426def2f787cec (patch)
tree94a2ff5a14e6f550da0c4923868f7e28844be223 /libguile
parent61aab1c3755a97390fc8e365fbd4a6b1a4f80978 (diff)
downloadguile-98241dc53fc66ec86c01b9eeea426def2f787cec.tar.gz
Revert "Change dynwind flag enums to #defines, for greater portability"
This reverts commit b25aa0b9373d2798469e0fe999cd915e8beedc4f.
Diffstat (limited to 'libguile')
-rw-r--r--libguile/dynwind.c14
-rw-r--r--libguile/dynwind.h25
2 files changed, 24 insertions, 15 deletions
diff --git a/libguile/dynwind.c b/libguile/dynwind.c
index 8e87f6098..b34f9bef3 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 (int flags)
+scm_dynwind_begin (scm_t_dynwind_flags flags)
{
SCM f;
SCM_NEWSMOB (f, tc16_frame, 0);
@@ -192,7 +192,8 @@ scm_dynwind_end (void)
}
void
-scm_dynwind_unwind_handler (void (*proc) (void *), void *data, int flags)
+scm_dynwind_unwind_handler (void (*proc) (void *), void *data,
+ scm_t_wind_flags flags)
{
SCM w;
SCM_NEWSMOB2 (w, tc16_winder, (scm_t_bits) proc, (scm_t_bits) data);
@@ -202,7 +203,8 @@ scm_dynwind_unwind_handler (void (*proc) (void *), void *data, int flags)
}
void
-scm_dynwind_rewind_handler (void (*proc) (void *), void *data, int flags)
+scm_dynwind_rewind_handler (void (*proc) (void *), void *data,
+ scm_t_wind_flags flags)
{
SCM w;
SCM_NEWSMOB2 (w, tc16_winder, (scm_t_bits) proc, (scm_t_bits) data);
@@ -213,7 +215,8 @@ scm_dynwind_rewind_handler (void (*proc) (void *), void *data, int flags)
}
void
-scm_dynwind_unwind_handler_with_scm (void (*proc) (SCM), SCM data, int flags)
+scm_dynwind_unwind_handler_with_scm (void (*proc) (SCM), SCM data,
+ scm_t_wind_flags flags)
{
SCM w;
scm_t_bits fl = ((flags&SCM_F_WIND_EXPLICITLY)? WINDER_F_EXPLICIT : 0);
@@ -223,7 +226,8 @@ scm_dynwind_unwind_handler_with_scm (void (*proc) (SCM), SCM data, int flags)
}
void
-scm_dynwind_rewind_handler_with_scm (void (*proc) (SCM), SCM data, int flags)
+scm_dynwind_rewind_handler_with_scm (void (*proc) (SCM), SCM data,
+ scm_t_wind_flags 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 a8209905f..b178bc429 100644
--- a/libguile/dynwind.h
+++ b/libguile/dynwind.h
@@ -43,21 +43,26 @@ SCM_INTERNAL void scm_init_dynwind (void);
SCM_API void scm_swap_bindings (SCM vars, SCM vals);
-/* Flags for scm_dynwind_begin. */
-#define SCM_F_DYNWIND_REWINDABLE 1
+typedef enum {
+ SCM_F_DYNWIND_REWINDABLE = (1 << 0)
+} scm_t_dynwind_flags;
-/* Flags for scm_dynwind_unwind_handler(_with_scm) and
- scm_dynwind_rewind_handler(_with_scm). */
-#define SCM_F_WIND_EXPLICITLY 1
+typedef enum {
+ SCM_F_WIND_EXPLICITLY = (1 << 0)
+} scm_t_wind_flags;
-SCM_API void scm_dynwind_begin (int);
+SCM_API void scm_dynwind_begin (scm_t_dynwind_flags);
SCM_API void scm_dynwind_end (void);
-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 (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_with_scm (void (*) (SCM), SCM, int);
-SCM_API void scm_dynwind_rewind_handler_with_scm (void (*) (SCM), SCM, 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_free (void *mem);