+ assert (gh_symbol_p (k));
+ SCM handle = scm_hashq_create_handle_x (hash_tab_, k, SCM_UNDEFINED);
+ if (ly_cdr (handle) == SCM_UNDEFINED)
+ {
+ elt_count_++;
+ }
+
+ gh_set_cdr_x (handle, v);
+
+ /*
+ resize if getting too large.
+ */
+ if (elt_count_ > 2 * SCM_SYMBOL_LENGTH (hash_tab_))
+ {
+ SCM nh = scm_make_vector (gh_int2scm (3* elt_count_+1), SCM_EOL);
+ copy_scm_hashes (nh, hash_tab_);
+ hash_tab_ = nh;
+ }
+