about summary refs log tree commit diff
path: root/locale/programs/locarchive.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-08-28 07:29:53 +0000
committerRoland McGrath <roland@gnu.org>2002-08-28 07:29:53 +0000
commita3f9038c879c11344430169d6daa8fad30d4f379 (patch)
tree3f8a79ac51aa7200d53aef80763961bff04e21c6 /locale/programs/locarchive.c
parent75261665f1dd29bdfedfe653a8d102fab2d012e6 (diff)
downloadglibc-a3f9038c879c11344430169d6daa8fad30d4f379.tar.gz
glibc-a3f9038c879c11344430169d6daa8fad30d4f379.tar.xz
glibc-a3f9038c879c11344430169d6daa8fad30d4f379.zip
Roland McGrath <roland@redhat.com>
	* locale/hashval.h (compute_hashval): Use prototype defn.
	(hashval_t): New macro, defined to unsigned long int
	if not already defined.
	(compute_hashval): Return hashval_t instead of unsigned long int.
	* locale/loadarchive.c (hashval_t): New macro.
	* locale/programs/locarchive.c: Include hashval.h directly instead
	of simple-hash.h.
	(compute_hashval, hashval_t): Define these macros first.
	(insert_name): Use archive_hashval instead of compute_hashval.
	(add_locale, delete_locales_from_archive): Likewise.

2002-08-28  Jakub Jelinek  <jakub@redhat.com>
Diffstat (limited to 'locale/programs/locarchive.c')
-rw-r--r--locale/programs/locarchive.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c
index 967589f0a4..07ec3bbc37 100644
--- a/locale/programs/locarchive.c
+++ b/locale/programs/locarchive.c
@@ -43,9 +43,15 @@
 #include "../../crypt/md5.h"
 #include "../localeinfo.h"
 #include "../locarchive.h"
-#include "simple-hash.h"
 #include "localedef.h"
 
+/* Define the hash function.  We define the function as static inline.
+   We must change the name so as not to conflict with simple-hash.h.  */
+#define compute_hashval static inline archive_hashval
+#define hashval_t uint32_t
+#include "hashval.h"
+#undef compute_hashval
+
 extern const char *output_prefix;
 
 #define ARCHIVE_NAME LOCALEDIR "/locale-archive"
@@ -522,7 +528,7 @@ insert_name (struct locarhandle *ah,
   unsigned int insert_idx, idx, incr;
 
   /* Hash value of the locale name.  */
-  uint32_t hval = compute_hashval (name, name_len);
+  uint32_t hval = archive_hashval (name, name_len);
 
   insert_idx = -1;
   idx = hval % head->namehash_size;
@@ -720,7 +726,7 @@ add_locale (struct locarhandle *ah,
 	/* Compute the hash value of the checksum to determine a
 	   starting point for the search in the MD5 hash value
 	   table.  */
-	hval = compute_hashval (data[cnt].sum, 16);
+	hval = archive_hashval (data[cnt].sum, 16);
 
 	idx = hval % head->sumhash_size;
 	incr = 1 + hval % (head->sumhash_size - 2);
@@ -812,7 +818,7 @@ add_locale (struct locarhandle *ah,
 	  error (EXIT_FAILURE, errno, _("cannot add to locale archive"));
 
 	/* Add the hash value to the hash table.  */
-	md5hval = compute_hashval (data[cnt].sum, 16);
+	md5hval = archive_hashval (data[cnt].sum, 16);
 
 	idx = md5hval % head->sumhash_size;
 	incr = 1 + md5hval % (head->sumhash_size - 2);
@@ -1303,7 +1309,7 @@ delete_locales_from_archive (nlist, list)
       unsigned int incr;
 
       /* Search for this locale in the archive.  */
-      hval = compute_hashval (locname, strlen (locname));
+      hval = archive_hashval (locname, strlen (locname));
 
       idx = hval % head->namehash_size;
       incr = 1 + hval % (head->namehash_size - 2);