summaryrefslogtreecommitdiff
path: root/libihash/ihash.c
diff options
context:
space:
mode:
authorMarco Gerards <marco@gnu.org>2004-04-02 17:01:03 +0000
committerMarco Gerards <marco@gnu.org>2004-04-02 17:01:03 +0000
commit83e12119b30fd0c01204aff8f8b40a1700eb72ab (patch)
tree38b101203140eec9cf07502e79af14ab2515d7b7 /libihash/ihash.c
parent01fa2523031ed2e4b7b692e2162e925619310688 (diff)
2004-04-02 Marco Gerards <metgerards@student.han.nl>
* ihash.c (hurd_ihash_remove): Don't look for the index when the hashtable is empty. * ihash.h (HURD_IHASH_ITERATE): Doc fix.
Diffstat (limited to 'libihash/ihash.c')
-rw-r--r--libihash/ihash.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/libihash/ihash.c b/libihash/ihash.c
index a6b96376..8fa9d514 100644
--- a/libihash/ihash.c
+++ b/libihash/ihash.c
@@ -1,5 +1,5 @@
/* ihash.c - Integer-keyed hash table functions.
- Copyright (C) 1993-1997, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1993-1997, 2001, 2003, 2004 Free Software Foundation, Inc.
Written by Michael I. Bushnell.
Revised by Miles Bader <miles@gnu.org>.
Revised by Marcus Brinkmann <marcus@gnu.org>.
@@ -419,15 +419,18 @@ hurd_ihash_find (hurd_ihash_t ht, hurd_ihash_key_t key)
int
hurd_ihash_remove (hurd_ihash_t ht, hurd_ihash_key_t key)
{
- int idx = find_index (ht, key);
-
- if (index_valid (ht, idx, key))
+ if (ht->size != 0)
{
- locp_remove (ht, &ht->items[idx].value);
- return 1;
+ int idx = find_index (ht, key);
+
+ if (index_valid (ht, idx, key))
+ {
+ locp_remove (ht, &ht->items[idx].value);
+ return 1;
+ }
}
- else
- return 0;
+
+ return 0;
}