diff options
author | Andy Wingo <wingo@pobox.com> | 2018-06-20 08:42:33 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2018-06-20 08:42:33 +0200 |
commit | c376e99ff9e73da10dc55e4ae9acf703fded12bf (patch) | |
tree | f33109af98a85f734f7d1c4d6165ca912b7fe206 /libguile/symbols.h | |
parent | cedab6e2856db466159b9861963a50d72cbd71d8 (diff) | |
download | guile-c376e99ff9e73da10dc55e4ae9acf703fded12bf.tar.gz |
Move symbol snarfers to symbols.h
* libguile/snarf.h:
* libguile/symbols.h (SCM_SYMBOL, SCM_GLOBAL_SYMBOL): Move here.
Diffstat (limited to 'libguile/symbols.h')
-rw-r--r-- | libguile/symbols.h | 35 |
1 files changed, 34 insertions, 1 deletions
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 <libguile/error.h> - #include <libguile/gc.h> +#include <libguile/snarf.h> @@ -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. |