hashtab.h (hash_pointer): Declare.

* hashtab.h (hash_pointer): Declare.
	(eq_pointer): Likewise.

	* hashtab.c (hash_pointer): New function.
	(eq_pointer): Likewise.
	(htab_hash_pointer): New variable.
	(htab_eq_pointer): Likewise.

From-SVN: r33372
This commit is contained in:
Mark Mitchell 2000-04-24 07:29:11 +00:00 committed by Mark Mitchell
parent 7d78e330d1
commit 18a94a2f75
4 changed files with 45 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2000-04-24 Mark Mitchell <mark@codesourcery.com>
* hashtab.h (hash_pointer): Declare.
(eq_pointer): Likewise.
2000-04-23 Mark Mitchell <mark@codesourcery.com> 2000-04-23 Mark Mitchell <mark@codesourcery.com>
* sort.h: New file. * sort.h: New file.

View File

@ -129,6 +129,12 @@ extern size_t htab_size PARAMS ((htab_t));
extern size_t htab_elements PARAMS ((htab_t)); extern size_t htab_elements PARAMS ((htab_t));
extern double htab_collisions PARAMS ((htab_t)); extern double htab_collisions PARAMS ((htab_t));
/* A hash function for pointers. */
extern htab_hash htab_hash_pointer;
/* An equality function for pointers. */
extern htab_eq htab_eq_pointer;
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /* __cplusplus */ #endif /* __cplusplus */

View File

@ -1,3 +1,10 @@
2000-04-24 Mark Mitchell <mark@codesourcery.com>
* hashtab.c (hash_pointer): New function.
(eq_pointer): Likewise.
(htab_hash_pointer): New variable.
(htab_eq_pointer): Likewise.
2000-04-23 Mark Mitchell <mark@codesourcery.com> 2000-04-23 Mark Mitchell <mark@codesourcery.com>
* sort.c (sort_pointers): Fix endianness bugs. * sort.c (sort_pointers): Fix endianness bugs.

View File

@ -56,6 +56,14 @@ Boston, MA 02111-1307, USA. */
#define DELETED_ENTRY ((void *) 1) #define DELETED_ENTRY ((void *) 1)
static unsigned long higher_prime_number PARAMS ((unsigned long)); static unsigned long higher_prime_number PARAMS ((unsigned long));
static hashval_t hash_pointer PARAMS ((const void *));
static int eq_pointer PARAMS ((const void *, const void *));
/* At some point, we could make these be NULL, and modify the
hash-table routines to handle NULL specially; that would avoid
function-call overhead for the common case of hashing pointers. */
htab_hash htab_hash_pointer = hash_pointer;
htab_eq htab_eq_pointer = eq_pointer;
/* The following function returns the nearest prime number which is /* The following function returns the nearest prime number which is
greater than a given source number, N. */ greater than a given source number, N. */
@ -88,6 +96,25 @@ higher_prime_number (n)
return n; return n;
} }
/* Returns a hash code for P. */
hashval_t
hash_pointer (p)
const void *p;
{
return (hashval_t) p;
}
/* Returns non-zero if P1 and P2 are equal. */
int
eq_pointer (p1, p2)
const void *p1;
const void *p2;
{
return p1 == p2;
}
/* This function creates table with length slightly longer than given /* This function creates table with length slightly longer than given
source length. Created hash table is initiated as empty (all the source length. Created hash table is initiated as empty (all the
hash table entries are EMPTY_ENTRY). The function returns the hash table entries are EMPTY_ENTRY). The function returns the