summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHan-Wen Nienhuys <hanwen@lilypond.org>2004-10-07 22:52:22 +0000
committerHan-Wen Nienhuys <hanwen@lilypond.org>2004-10-07 22:52:22 +0000
commit497eb0b7252526e3694fd50f4141c34b4ba08f7d (patch)
treec7f14ed78863ed1cfd282964cc4e9de54f3f43fa
parent1097a62cd92f57609e21dd1f2c0efa890f7a54ca (diff)
downloadguile-497eb0b7252526e3694fd50f4141c34b4ba08f7d.tar.gz
(scm_double_cell): abort if GC running.
(scm_cell): idem.
-rw-r--r--libguile/ChangeLog5
-rw-r--r--libguile/error.c1
-rw-r--r--libguile/inline.h10
3 files changed, 15 insertions, 1 deletions
diff --git a/libguile/ChangeLog b/libguile/ChangeLog
index 799feea7d..23c2d5da5 100644
--- a/libguile/ChangeLog
+++ b/libguile/ChangeLog
@@ -1,3 +1,8 @@
+2004-10-08 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+ * inline.h (scm_double_cell): abort if GC running.
+ (scm_cell): idem.
+
2004-10-04 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* error.c (scm_wrong_type_arg): Do not talk about "argument" for
diff --git a/libguile/error.c b/libguile/error.c
index d67e74d1a..28b5bc150 100644
--- a/libguile/error.c
+++ b/libguile/error.c
@@ -47,7 +47,6 @@
#endif
-
/* {Errors and Exceptional Conditions}
*/
diff --git a/libguile/inline.h b/libguile/inline.h
index 19cd2ba54..d3ba8dfe5 100644
--- a/libguile/inline.h
+++ b/libguile/inline.h
@@ -63,6 +63,11 @@ SCM_C_INLINE
SCM
scm_cell (scm_t_bits car, scm_t_bits cdr)
{
+ if (scm_gc_running_p)
+ {
+ abort();
+ }
+
SCM z;
/* We retrieve the SCM pointer only once since the call to
SCM_FREELIST_LOC will be slightly expensive when we support
@@ -161,6 +166,11 @@ SCM
scm_double_cell (scm_t_bits car, scm_t_bits cbr,
scm_t_bits ccr, scm_t_bits cdr)
{
+ if (scm_gc_running_p)
+ {
+ abort();
+ }
+
SCM z;
SCM *freelist = SCM_FREELIST_LOC (scm_i_freelist2);