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:
parent
7d78e330d1
commit
18a94a2f75
|
@ -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.
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue