+2000-04-24 Mark Mitchell <mark@codesourcery.com>
+
+ * hashtab.h (hash_pointer): Declare.
+ (eq_pointer): Likewise.
+
2000-04-23 Mark Mitchell <mark@codesourcery.com>
* sort.h: New file.
extern size_t htab_elements 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
}
#endif /* __cplusplus */
+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>
* sort.c (sort_pointers): Fix endianness bugs.
#define DELETED_ENTRY ((void *) 1)
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
greater than a given source number, 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
source length. Created hash table is initiated as empty (all the
hash table entries are EMPTY_ENTRY). The function returns the