git: 803887970ab6 - stable/15 - libc/db: Remove unused hash functions in hash_func.c

Bojan Novković <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.src,gmane.os.freebsd.devel.stable.scm
Message-ID <[email protected]>
The branch stable/15 has been updated by bnovkov:

URL: https://cgit.FreeBSD.org/src/commit/?id=803887970ab6dca9a2eab6ef5d8cddf50f8621fd

commit 803887970ab6dca9a2eab6ef5d8cddf50f8621fd
Author:     Bojan Novković <[email protected]>
AuthorDate: 2026-03-13 11:03:26 +0000
Commit:     Bojan Novković <[email protected]>
CommitDate: 2026-08-10 16:06:01 +0000

    libc/db: Remove unused hash functions in hash_func.c
    
    Prune unused code hidden behind 'notdef', bringing us in sync with
    the changes in OpenBSD. Despite the `__default_hash` function pointer
    having external linkage, no ABI change is expected since it was
    never exported.
    
    Sponsored by:   Klara, Inc.
    Differential Revision:  https://reviews.freebsd.org/D55842
    Reviewed by:    allanjude, des
    MFC after:      2 weeks
    
    (cherry picked from commit c09ccfc2665bef0d81d1db4e3713e4f2a0b5a064)
---
 lib/libc/db/hash/extern.h    |   2 +-
 lib/libc/db/hash/hash_func.c | 107 +------------------------------------------
 2 files changed, 2 insertions(+), 107 deletions(-)

diff --git a/lib/libc/db/hash/extern.h b/lib/libc/db/hash/extern.h
index d3850752ad3a..690219d30606 100644
--- a/lib/libc/db/hash/extern.h
+++ b/lib/libc/db/hash/extern.h
@@ -54,7 +54,7 @@ void	 __reclaim_buf(HTAB *, BUFHEAD *);
 int	 __split_page(HTAB *, u_int32_t, u_int32_t);
 
 /* Default hash routine. */
-extern u_int32_t (*__default_hash)(const void *, size_t);
+u_int32_t __default_hash(const void *, size_t);
 
 #ifdef HASH_STATISTICS
 extern int hash_accesses, hash_collisions, hash_expansions, hash_overflows;
diff --git a/lib/libc/db/hash/hash_func.c b/lib/libc/db/hash/hash_func.c
index 529180b7698d..29597a04d3c0 100644
--- a/lib/libc/db/hash/hash_func.c
+++ b/lib/libc/db/hash/hash_func.c
@@ -39,114 +39,9 @@
 #include "page.h"
 #include "extern.h"
 
-#ifdef notdef
-static u_int32_t hash1(const void *, size_t) __unused;
-static u_int32_t hash2(const void *, size_t) __unused;
-static u_int32_t hash3(const void *, size_t) __unused;
-#endif
-static u_int32_t hash4(const void *, size_t);
-
-/* Default hash function. */
-u_int32_t (*__default_hash)(const void *, size_t) = hash4;
-
-#ifdef notdef
-/*
- * Assume that we've already split the bucket to which this key hashes,
- * calculate that bucket, and check that in fact we did already split it.
- *
- * EJB's original hsearch hash.
- */
-#define PRIME1		37
-#define PRIME2		1048583
-
-u_int32_t
-hash1(const void *key, size_t len)
-{
-	u_int32_t h;
-	u_int8_t *k;
-
-	h = 0;
-	k = (u_int8_t *)key;
-	/* Convert string to integer */
-	while (len--)
-		h = h * PRIME1 ^ (*k++ - ' ');
-	h %= PRIME2;
-	return (h);
-}
-
-/*
- * Phong Vo's linear congruential hash
- */
-#define dcharhash(h, c)	((h) = 0x63c63cd9*(h) + 0x9c39c33d + (c))
-
-u_int32_t
-hash2(const void *key, size_t len)
-{
-	u_int32_t h;
-	u_int8_t *e, c, *k;
-
-	k = (u_int8_t *)key;
-	e = k + len;
-	for (h = 0; k != e;) {
-		c = *k++;
-		if (!c && k > e)
-			break;
-		dcharhash(h, c);
-	}
-	return (h);
-}
-
-/*
- * This is INCREDIBLY ugly, but fast.  We break the string up into 8 byte
- * units.  On the first time through the loop we get the "leftover bytes"
- * (strlen % 8).  On every other iteration, we perform 8 HASHC's so we handle
- * all 8 bytes.  Essentially, this saves us 7 cmp & branch instructions.  If
- * this routine is heavily used enough, it's worth the ugly coding.
- *
- * Ozan Yigit's original sdbm hash.
- */
-u_int32_t
-hash3(const void *key, size_t len)
-{
-	u_int32_t n, loop;
-	u_int8_t *k;
-
-#define HASHC   n = *k++ + 65599 * n
-
-	n = 0;
-	k = (u_int8_t *)key;
-	if (len > 0) {
-		loop = (len + 8 - 1) >> 3;
-
-		switch (len & (8 - 1)) {
-		case 0:
-			do {	/* All fall throughs */
-				HASHC;
-		case 7:
-				HASHC;
-		case 6:
-				HASHC;
-		case 5:
-				HASHC;
-		case 4:
-				HASHC;
-		case 3:
-				HASHC;
-		case 2:
-				HASHC;
-		case 1:
-				HASHC;
-			} while (--loop);
-		}
-
-	}
-	return (n);
-}
-#endif /* notdef */
-
 /* Chris Torek's hash function. */
 u_int32_t
-hash4(const void *key, size_t len)
+__default_hash(const void *key, size_t len)
 {
 	u_int32_t h, loop;
 	const u_int8_t *k;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.