120 |
|
|
121 |
{ |
{ |
122 |
/* The symbol was not found - create it. */ |
/* The symbol was not found - create it. */ |
123 |
|
SCM symbol = scm_double_cell (SCM_MAKE_SYMBOL_TAG (len), |
|
SCM symbol; |
|
|
SCM cell; |
|
|
SCM slot; |
|
|
|
|
|
symbol = scm_double_cell (SCM_MAKE_SYMBOL_TAG (len), |
|
124 |
(scm_t_bits) scm_gc_strndup (name, len, |
(scm_t_bits) scm_gc_strndup (name, len, |
125 |
"symbol"), |
"symbol"), |
126 |
raw_hash, |
raw_hash, |
127 |
SCM_UNPACK (scm_cons (SCM_BOOL_F, SCM_EOL))); |
SCM_UNPACK (scm_cons (SCM_BOOL_F, SCM_EOL))); |
128 |
|
|
129 |
slot = SCM_VELTS (symbols) [hash]; |
SCM slot = SCM_VELTS (symbols) [hash]; |
130 |
cell = scm_cons (symbol, SCM_UNDEFINED); |
SCM cell = scm_cons (symbol, SCM_UNDEFINED); |
131 |
SCM_VECTOR_SET (symbols, hash, scm_cons (cell, slot)); |
SCM_VECTOR_SET (symbols, hash, scm_cons (cell, slot)); |
132 |
|
|
133 |
return symbol; |
return symbol; |