X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=inline;f=src%2Flibpspp%2Fhash.c;h=f2d99e3a8f31204d9a93d48cc1208695bff78713;hb=6eeee3ec27d9e75cba2f390fc7dceef7ff38c2f3;hp=9da3deb120a92ba0ee3423f78441ad85dd9ab22f;hpb=f404544337964f80bb2d1fee5acb147f7023bc08;p=pspp
diff --git a/src/libpspp/hash.c b/src/libpspp/hash.c
index 9da3deb120..f2d99e3a8f 100644
--- a/src/libpspp/hash.c
+++ b/src/libpspp/hash.c
@@ -1,5 +1,5 @@
/* PSPP - a program for statistical analysis.
- Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1997-9, 2000, 2008 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -15,19 +15,18 @@
along with this program. If not, see . */
#include
-#include
-#include "hash.h"
-#include "message.h"
+
#include
-#include
#include
#include
#include
+
#include "array.h"
#include "compiler.h"
+#include "hash.h"
#include "misc.h"
-#include "str.h"
#include "pool.h"
+#include "str.h"
#include "xalloc.h"
@@ -70,74 +69,6 @@ next_power_of_2 (size_t x)
}
}
-/* Fowler-Noll-Vo hash constants, for 32-bit word sizes. */
-#define FNV_32_PRIME 16777619u
-#define FNV_32_BASIS 2166136261u
-
-/* Fowler-Noll-Vo 32-bit hash, for bytes. */
-unsigned
-hsh_hash_bytes (const void *buf_, size_t size)
-{
- const unsigned char *buf = (const unsigned char *) buf_;
- unsigned hash;
-
- assert (buf != NULL);
-
- hash = FNV_32_BASIS;
- while (size-- > 0)
- hash = (hash * FNV_32_PRIME) ^ *buf++;
-
- return hash;
-}
-
-/* Fowler-Noll-Vo 32-bit hash, for strings. */
-unsigned
-hsh_hash_string (const char *s_)
-{
- const unsigned char *s = (const unsigned char *) s_;
- unsigned hash;
-
- assert (s != NULL);
-
- hash = FNV_32_BASIS;
- while (*s != '\0')
- hash = (hash * FNV_32_PRIME) ^ *s++;
-
- return hash;
-}
-
-/* Fowler-Noll-Vo 32-bit hash, for case-insensitive strings. */
-unsigned
-hsh_hash_case_string (const char *s_)
-{
- const unsigned char *s = (const unsigned char *) s_;
- unsigned hash;
-
- assert (s != NULL);
-
- hash = FNV_32_BASIS;
- while (*s != '\0')
- hash = (hash * FNV_32_PRIME) ^ toupper (*s++);
-
- return hash;
-}
-
-/* Hash for ints. */
-unsigned
-hsh_hash_int (int i)
-{
- return hsh_hash_bytes (&i, sizeof i);
-}
-
-/* Hash for double. */
-unsigned
-hsh_hash_double (double d)
-{
- if (!isnan (d))
- return hsh_hash_bytes (&d, sizeof d);
- else
- return 0;
-}
/* Hash tables. */
@@ -611,7 +542,7 @@ hsh_dump (struct hsh_table *h)
void **entry = h->entries;
int i;
- printf (_("hash table:"));
+ printf ("hash table:");
for (i = 0; i < h->size; i++)
printf (" %p", *entry++);
printf ("\n");