about summary refs log tree commit diff
path: root/locale
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-11-28 17:22:21 +0000
committerUlrich Drepper <drepper@redhat.com>2001-11-28 17:22:21 +0000
commitcd0392d8804bcee4b7b5ebb3c8f26dafbef37db3 (patch)
tree190848489a313cb3b1053bf8a7378c9325b284c4 /locale
parent0555fccea74d63cce35ca7121688a4a6dce610ca (diff)
downloadglibc-cd0392d8804bcee4b7b5ebb3c8f26dafbef37db3.tar.gz
glibc-cd0392d8804bcee4b7b5ebb3c8f26dafbef37db3.tar.xz
glibc-cd0392d8804bcee4b7b5ebb3c8f26dafbef37db3.zip
Update.
2001-11-28  Bruno Haible  <bruno@clisp.org>

	* locale/programs/simple-hash.c (lookup_2): Remove function.
	(insert_entry_2): Call lookup instead of lookup_2.
Diffstat (limited to 'locale')
-rw-r--r--locale/programs/simple-hash.c51
1 files changed, 3 insertions, 48 deletions
diff --git a/locale/programs/simple-hash.c b/locale/programs/simple-hash.c
index 9056fa0447..f8430ff92e 100644
--- a/locale/programs/simple-hash.c
+++ b/locale/programs/simple-hash.c
@@ -72,8 +72,6 @@ static void insert_entry_2 (hash_table *htab, const void *key, size_t keylen,
 			    unsigned long hval, size_t idx, void *data);
 static size_t lookup (hash_table *htab, const void *key, size_t keylen,
 		      unsigned long int hval);
-static size_t lookup_2 (hash_table *htab, const void *key, size_t keylen,
-			unsigned long int hval);
 static unsigned long compute_hashval (const void *key, size_t keylen);
 static int is_prime (unsigned long int candidate);
 
@@ -179,8 +177,8 @@ insert_entry_2 (htab, key, keylen, hval, idx, data)
 	if (table[idx].used)
 	  insert_entry_2 (htab, table[idx].key, table[idx].keylen,
 			  table[idx].used,
-			  lookup_2 (htab, table[idx].key, table[idx].keylen,
-				    table[idx].used),
+			  lookup (htab, table[idx].key, table[idx].keylen,
+				  table[idx].used),
 			  table[idx].data);
 
       free (table);
@@ -252,55 +250,12 @@ iterate_table (htab, ptr, key, keylen, data)
 }
 
 
-static size_t
-lookup (htab, key, keylen, hval)
-     hash_table *htab;
-     const void *key;
-     size_t keylen;
-     unsigned long hval;
-{
-  unsigned long hash;
-  size_t idx;
-  hash_entry *table = (hash_entry *) htab->table;
-
-  /* First hash function: simply take the modul but prevent zero.  */
-  hash = 1 + hval % htab->size;
-
-  idx = hash;
-
-  if (table[idx].used)
-    {
-      if (table[idx].used == hval && table[idx].keylen == keylen
-	  && memcmp (key, table[idx].key, keylen) == 0)
-	return idx;
-
-      /* Second hash function as suggested in [Knuth].  */
-      hash = 1 + hval % (htab->size - 2);
-
-      do
-	{
-	  if (idx <= hash)
-	    idx = htab->size + idx - hash;
-	  else
-	    idx -= hash;
-
-	  /* If entry is found use it.  */
-	  if (table[idx].used == hval && table[idx].keylen == keylen
-	      && memcmp (key, table[idx].key, keylen) == 0)
-	    return idx;
-	}
-      while (table[idx].used);
-    }
-  return idx;
-}
-
-
 /* References:
    [Aho,Sethi,Ullman] Compilers: Principles, Techniques and Tools, 1986
    [Knuth]	      The Art of Computer Programming, part3 (6.4) */
 
 static size_t
-lookup_2 (htab, key, keylen, hval)
+lookup (htab, key, keylen, hval)
      hash_table *htab;
      const void *key;
      size_t keylen;