+ assert (scm_is_symbol (k));
+ SCM handle = scm_hashq_create_handle_x (hash_tab_, k, SCM_UNDEFINED);
+ if (scm_cdr (handle) == SCM_UNDEFINED)
+ elt_count_++;
+
+ scm_set_cdr_x (handle, v);
+
+ /*
+ resize if getting too large.
+ */
+ if (elt_count_ > 2 * scm_c_vector_length (hash_tab_))
+ {
+ SCM nh = scm_make_vector (scm_from_int (3 * elt_count_ + 1), SCM_EOL);
+ elt_count_ = copy_scm_hashes (nh, hash_tab_);
+ hash_tab_ = nh;
+ }