Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Mar 2026 10:38:08 +0000
From:      Bojan Novk=?utf-8?Q?ovi=C4=87?= <bnovkov@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: c09ccfc2665b - main - libc/db: Remove unused hash functions in hash_func.c
Message-ID:  <69c26990.336a7.5610b64d@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by bnovkov:

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

commit c09ccfc2665bef0d81d1db4e3713e4f2a0b5a064
Author:     Bojan Novković <bnovkov@FreeBSD.org>
AuthorDate: 2026-03-13 11:03:26 +0000
Commit:     Bojan Novković <bnovkov@FreeBSD.org>
CommitDate: 2026-03-24 10:34:55 +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
---
 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;


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69c26990.336a7.5610b64d>