summaryrefslogtreecommitdiff
path: root/libguile
diff options
context:
space:
mode:
authorDirk Herrmann <dirk@dirk-herrmanns-seiten.de>2000-07-18 07:02:57 +0000
committerDirk Herrmann <dirk@dirk-herrmanns-seiten.de>2000-07-18 07:02:57 +0000
commitcc4feeca51e8b9f2883cfd0efb51092e6a014b4c (patch)
treefd30151a6420e4011229ea5729823e1495c66301 /libguile
parent007e7c35883b9d5ac982a27c7ac80b468bd7f61e (diff)
downloadguile-cc4feeca51e8b9f2883cfd0efb51092e6a014b4c.tar.gz
* Deprecated function scm_call_catching_errors.
* Updated root-smob initialization.
Diffstat (limited to 'libguile')
-rw-r--r--libguile/ChangeLog7
-rw-r--r--libguile/root.c14
-rw-r--r--libguile/root.h10
3 files changed, 25 insertions, 6 deletions
diff --git a/libguile/ChangeLog b/libguile/ChangeLog
index 298f5dea8..880fd9632 100644
--- a/libguile/ChangeLog
+++ b/libguile/ChangeLog
@@ -1,3 +1,10 @@
+2000-07-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
+ * root.[ch] (scm_call_catching_errors): Deprecated.
+
+ * root.c (scm_init_root): Initialize the root smob type using the
+ standard initialization functions.
+
2000-07-17 Marius Vollmer <mvo@zagadka.ping.de>
* eval.c (unmemocopy): Don't rely on V being a list of at least
diff --git a/libguile/root.c b/libguile/root.c
index 5504f3544..e58db5304 100644
--- a/libguile/root.c
+++ b/libguile/root.c
@@ -399,12 +399,13 @@ scm_apply_with_dynamic_root (SCM proc, SCM a1, SCM args, SCM handler)
+#if (SCM_DEBUG_DEPRECATED == 0)
+
/* Call thunk(closure) underneath a top-level error handler.
* If an error occurs, pass the exitval through err_filter and return it.
* If no error occurs, return the value of thunk.
*/
-
#ifdef _UNICOS
typedef int setjmp_type;
#else
@@ -412,7 +413,6 @@ typedef long setjmp_type;
#endif
-
SCM
scm_call_catching_errors (SCM (*thunk)(), SCM (*err_filter)(), void *closure)
{
@@ -436,12 +436,16 @@ scm_call_catching_errors (SCM (*thunk)(), SCM (*err_filter)(), void *closure)
return answer;
}
+#endif /* SCM_DEBUG_DEPRECATED == 0 */
+
+
void
scm_init_root ()
{
- scm_tc16_root = scm_make_smob_type_mfpe ("root", sizeof (struct scm_root_state),
- mark_root, NULL, print_root, NULL);
-
+ scm_tc16_root = scm_make_smob_type ("root", sizeof (struct scm_root_state));
+ scm_set_smob_mark (scm_tc16_root, mark_root);
+ scm_set_smob_print (scm_tc16_root, print_root);
+
#include "libguile/root.x"
}
diff --git a/libguile/root.h b/libguile/root.h
index c769e6c98..2c6bdc255 100644
--- a/libguile/root.h
+++ b/libguile/root.h
@@ -161,9 +161,17 @@ extern SCM scm_internal_cwdr (scm_catch_body_t body,
extern SCM scm_call_with_dynamic_root (SCM thunk, SCM handler);
extern SCM scm_dynamic_root (void);
extern SCM scm_apply_with_dynamic_root (SCM proc, SCM a1, SCM args, SCM handler);
-extern SCM scm_call_catching_errors (SCM (*thunk)(), SCM (*err_filter)(), void * closure);
extern void scm_init_root (void);
+
+
+#if (SCM_DEBUG_DEPRECATED == 0)
+
+/* Use the catch functions from throw.[ch] instead of: */
+extern SCM scm_call_catching_errors (SCM (*thunk)(), SCM (*err_filter)(), void * closure);
+
+#endif /* SCM_DEBUG_DEPRECATED == 0 */
+
#endif /* ROOTH */
/*