diff --git a/libguile/snarf.h b/libguile/snarf.h index 3ef17c12e..a81f7129f 100644 --- a/libguile/snarf.h +++ b/libguile/snarf.h @@ -152,36 +152,6 @@ scm_c_define_gsubr_with_generic (RANAME, REQ, OPT, VAR, \ (SCM_FUNC_CAST_ARBITRARY_ARGS) CFN, &GF) \ ) -#ifdef SCM_SUPPORT_STATIC_ALLOCATION - -# define SCM_SYMBOL(c_name, scheme_name) \ -SCM_SNARF_HERE( \ - SCM_IMMUTABLE_STRING (scm_i_paste (c_name, _string), scheme_name); \ - static SCM c_name) \ -SCM_SNARF_INIT( \ - c_name = scm_string_to_symbol (scm_i_paste (c_name, _string)) \ -) - -# define SCM_GLOBAL_SYMBOL(c_name, scheme_name) \ -SCM_SNARF_HERE( \ - SCM_IMMUTABLE_STRING (scm_i_paste (c_name, _string), scheme_name); \ - SCM c_name) \ -SCM_SNARF_INIT( \ - c_name = scm_string_to_symbol (scm_i_paste (c_name, _string)) \ -) - -#else /* !SCM_SUPPORT_STATIC_ALLOCATION */ - -# define SCM_SYMBOL(c_name, scheme_name) \ -SCM_SNARF_HERE(static SCM c_name) \ -SCM_SNARF_INIT(c_name = scm_from_utf8_symbol (scheme_name)) - -# define SCM_GLOBAL_SYMBOL(c_name, scheme_name) \ -SCM_SNARF_HERE(SCM c_name) \ -SCM_SNARF_INIT(c_name = scm_from_utf8_symbol (scheme_name)) - -#endif /* !SCM_SUPPORT_STATIC_ALLOCATION */ - #define SCM_KEYWORD(c_name, scheme_name) \ SCM_SNARF_HERE(static SCM c_name) \ SCM_SNARF_INIT(c_name = scm_from_locale_keyword (scheme_name)) diff --git a/libguile/symbols.h b/libguile/symbols.h index 00fb2c4ec..cf1d09e4d 100644 --- a/libguile/symbols.h +++ b/libguile/symbols.h @@ -26,8 +26,8 @@ #include "libguile/__scm.h" #include - #include +#include @@ -44,6 +44,39 @@ SCM_ASSERT_TYPE (scm_is_symbol (str), str, pos, FUNC_NAME, "symbol"); \ } while (0) + + + +#ifdef SCM_SUPPORT_STATIC_ALLOCATION + +# define SCM_SYMBOL(c_name, scheme_name) \ +SCM_SNARF_HERE( \ + SCM_IMMUTABLE_STRING (scm_i_paste (c_name, _string), scheme_name); \ + static SCM c_name) \ +SCM_SNARF_INIT( \ + c_name = scm_string_to_symbol (scm_i_paste (c_name, _string)) \ +) + +# define SCM_GLOBAL_SYMBOL(c_name, scheme_name) \ +SCM_SNARF_HERE( \ + SCM_IMMUTABLE_STRING (scm_i_paste (c_name, _string), scheme_name); \ + SCM c_name) \ +SCM_SNARF_INIT( \ + c_name = scm_string_to_symbol (scm_i_paste (c_name, _string)) \ +) + +#else /* !SCM_SUPPORT_STATIC_ALLOCATION */ + +# define SCM_SYMBOL(c_name, scheme_name) \ +SCM_SNARF_HERE(static SCM c_name) \ +SCM_SNARF_INIT(c_name = scm_from_utf8_symbol (scheme_name)) + +# define SCM_GLOBAL_SYMBOL(c_name, scheme_name) \ +SCM_SNARF_HERE(SCM c_name) \ +SCM_SNARF_INIT(c_name = scm_from_utf8_symbol (scheme_name)) + +#endif /* !SCM_SUPPORT_STATIC_ALLOCATION */ + /* Older spellings; don't use in new code.