diff options
author | Marius Vollmer <mvo@zagadka.de> | 2001-05-15 14:57:22 +0000 |
---|---|---|
committer | Marius Vollmer <mvo@zagadka.de> | 2001-05-15 14:57:22 +0000 |
commit | 86d31dfe7d0754b863863f6544c75097ef68fe8c (patch) | |
tree | 0f78f9d3ace802b80422dcedea25098cf901d05a /libguile/keywords.c | |
parent | 7c33806ae676601f902dbdc0f39c1f0828d68951 (diff) | |
download | guile-86d31dfe7d0754b863863f6544c75097ef68fe8c.tar.gz |
Merge from mvo-vcell-cleanup-1-branch.
Diffstat (limited to 'libguile/keywords.c')
-rw-r--r-- | libguile/keywords.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/libguile/keywords.c b/libguile/keywords.c index ff86b582f..f17eedacc 100644 --- a/libguile/keywords.c +++ b/libguile/keywords.c @@ -71,24 +71,21 @@ SCM_DEFINE (scm_make_keyword_from_dash_symbol, "make-keyword-from-dash-symbol", "Make a keyword object from a @var{symbol} that starts with a dash.") #define FUNC_NAME s_scm_make_keyword_from_dash_symbol { - SCM vcell; + SCM keyword; SCM_ASSERT (SCM_SYMBOLP (symbol) && ('-' == SCM_SYMBOL_CHARS(symbol)[0]), symbol, SCM_ARG1, FUNC_NAME); SCM_DEFER_INTS; - vcell = scm_sym2ovcell_soft (symbol, scm_keyword_obarray); - if (SCM_FALSEP (vcell)) + keyword = scm_hashq_ref (scm_keyword_obarray, symbol, SCM_BOOL_F); + if (SCM_FALSEP (keyword)) { - SCM keyword; SCM_NEWSMOB (keyword, scm_tc16_keyword, SCM_UNPACK (symbol)); - scm_intern_symbol (scm_keyword_obarray, symbol); - vcell = scm_sym2ovcell_soft (symbol, scm_keyword_obarray); - SCM_SETCDR (vcell, keyword); + scm_hashq_set_x (scm_keyword_obarray, symbol, keyword); } SCM_ALLOW_INTS; - return SCM_CDR (vcell); + return keyword; } #undef FUNC_NAME |