summaryrefslogtreecommitdiffstats
path: root/hash.c
diff options
context:
space:
mode:
Diffstat (limited to 'hash.c')
-rw-r--r--hash.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/hash.c b/hash.c
index 1ee0a248..c0c66114 100644
--- a/hash.c
+++ b/hash.c
@@ -544,13 +544,12 @@ val gethash(val hash, val key)
val inhash(val hash, val key, val init)
{
- struct hash *h = (struct hash *) cobj_handle(hash, hash_s);
val found;
if (missingp(init)) {
- val chain = vecref(h->table, num_fast(h->hash_fun(key) % h->modulus));
- found = h->assoc_fun(key, chain);
+ gethash_f(hash, key, &found);
} else {
+ struct hash *h = (struct hash *) cobj_handle(hash, hash_s);
val *pchain = vecref_l(h->table, num_fast(h->hash_fun(key) % h->modulus));
val old = *pchain, new_p;
val *place = h->acons_new_l_fun(key, &new_p, pchain);