From 497eb0b7252526e3694fd50f4141c34b4ba08f7d Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Thu, 7 Oct 2004 22:52:22 +0000 Subject: [PATCH] (scm_double_cell): abort if GC running. (scm_cell): idem. --- libguile/ChangeLog | 5 +++++ libguile/error.c | 1 - libguile/inline.h | 10 ++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) 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 + + * inline.h (scm_double_cell): abort if GC running. + (scm_cell): idem. + 2004-10-04 Marius Vollmer * 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);