Use size_t (not unsigned int) for hashes, since the gnulib hash module

now uses size_t.
This commit is contained in:
Paul Eggert
2004-05-07 07:35:10 +00:00
parent 9668e2be96
commit 233a88ad11
5 changed files with 26 additions and 17 deletions

View File

@@ -1,3 +1,11 @@
2004-05-06 Paul Eggert <eggert@cs.ucla.edu>
* src/muscle_tab.c (hash_muscle): Accept and return size_t, not
unsigned int, for compatibility with latest gnulib hash module.
* src/state.c (state_hash, state_hasher): Likewise.
* src/symtab.c (hash_symbol, hash_symbol_hasher): Likewise.
* src/uniqstr.c (hash_uniqstr): Likewise.
2004-05-03 Paul Eggert <eggert@cs.ucla.edu> 2004-05-03 Paul Eggert <eggert@cs.ucla.edu>
* NEWS: Unescaped newlines are no longer allowed in char & strings. * NEWS: Unescaped newlines are no longer allowed in char & strings.

View File

@@ -1,6 +1,6 @@
/* Muscle table manager for Bison. /* Muscle table manager for Bison.
Copyright (C) 2001, 2002 Free Software Foundation, Inc. Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler. This file is part of Bison, the GNU Compiler Compiler.
@@ -50,8 +50,8 @@ hash_compare_muscles (void const *x, void const *y)
return strcmp (m1->key, m2->key) == 0; return strcmp (m1->key, m2->key) == 0;
} }
static unsigned int static size_t
hash_muscle (const void *x, unsigned int tablesize) hash_muscle (const void *x, size_t tablesize)
{ {
muscle_entry const *m = x; muscle_entry const *m = x;
return hash_string (m->key, tablesize); return hash_string (m->key, tablesize);

View File

@@ -1,6 +1,6 @@
/* Type definitions for nondeterministic finite state machine for Bison. /* Type definitions for nondeterministic finite state machine for Bison.
Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler. This file is part of Bison, the GNU Compiler Compiler.
@@ -279,19 +279,19 @@ state_comparator (void const *s1, void const *s2)
return state_compare (s1, s2); return state_compare (s1, s2);
} }
static inline unsigned int static inline size_t
state_hash (state const *s, unsigned int tablesize) state_hash (state const *s, size_t tablesize)
{ {
/* Add up the state's item numbers to get a hash key. */ /* Add up the state's item numbers to get a hash key. */
unsigned int key = 0; size_t key = 0;
int i; int i;
for (i = 0; i < s->nitems; ++i) for (i = 0; i < s->nitems; ++i)
key += s->items[i]; key += s->items[i];
return key % tablesize; return key % tablesize;
} }
static unsigned int static size_t
state_hasher (void const *s, unsigned int tablesize) state_hasher (void const *s, size_t tablesize)
{ {
return state_hash (s, tablesize); return state_hash (s, tablesize);
} }

View File

@@ -1,6 +1,7 @@
/* Symbol table manager for Bison. /* Symbol table manager for Bison.
Copyright (C) 1984, 1989, 2000, 2001, 2002 Free Software Foundation, Inc. Copyright (C) 1984, 1989, 2000, 2001, 2002, 2004 Free Software
Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler. This file is part of Bison, the GNU Compiler Compiler.
@@ -403,15 +404,15 @@ hash_symbol_comparator (void const *m1, void const *m2)
return hash_compare_symbol (m1, m2); return hash_compare_symbol (m1, m2);
} }
static inline unsigned int static inline size_t
hash_symbol (const symbol *m, unsigned int tablesize) hash_symbol (const symbol *m, size_t tablesize)
{ {
/* Since tags are unique, we can hash the pointer itself. */ /* Since tags are unique, we can hash the pointer itself. */
return ((uintptr_t) m->tag) % tablesize; return ((uintptr_t) m->tag) % tablesize;
} }
static unsigned int static size_t
hash_symbol_hasher (void const *m, unsigned int tablesize) hash_symbol_hasher (void const *m, size_t tablesize)
{ {
return hash_symbol (m, tablesize); return hash_symbol (m, tablesize);
} }

View File

@@ -1,6 +1,6 @@
/* Keep a unique copy of strings. /* Keep a unique copy of strings.
Copyright (C) 2002, 2003 Free Software Foundation, Inc. Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler. This file is part of Bison, the GNU Compiler Compiler.
@@ -97,8 +97,8 @@ hash_compare_uniqstr (void const *m1, void const *m2)
return strcmp (m1, m2) == 0; return strcmp (m1, m2) == 0;
} }
static unsigned int static size_t
hash_uniqstr (void const *m, unsigned int tablesize) hash_uniqstr (void const *m, size_t tablesize)
{ {
return hash_string (m, tablesize); return hash_string (m, tablesize);
} }