summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libguile/dynwind.c6
-rw-r--r--libguile/dynwind.h2
2 files changed, 8 insertions, 0 deletions
diff --git a/libguile/dynwind.c b/libguile/dynwind.c
index e8059be27..299842912 100644
--- a/libguile/dynwind.c
+++ b/libguile/dynwind.c
@@ -234,6 +234,12 @@ scm_frame_rewind_handler_with_scm (void (*proc) (SCM), SCM data,
proc (data);
}
+void
+scm_frame_free (void *mem)
+{
+ scm_frame_unwind_handler (free, mem, SCM_F_WIND_EXPLICITLY);
+}
+
#ifdef GUILE_DEBUG
SCM_DEFINE (scm_wind_chain, "wind-chain", 0, 0, 0,
(),
diff --git a/libguile/dynwind.h b/libguile/dynwind.h
index ce68bcd64..9aab34881 100644
--- a/libguile/dynwind.h
+++ b/libguile/dynwind.h
@@ -63,6 +63,8 @@ SCM_API void scm_frame_unwind_handler_with_scm (void (*func) (SCM), SCM data,
SCM_API void scm_frame_rewind_handler_with_scm (void (*func) (SCM), SCM data,
scm_t_wind_flags);
+SCM_API void scm_frame_free (void *mem);
+
#ifdef GUILE_DEBUG
SCM_API SCM scm_wind_chain (void);
#endif /*GUILE_DEBUG*/