From 8afb9681b3be7149cf8913a5aefe915194fd20f7 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Mon, 15 Nov 2010 17:49:11 +1030 Subject: [PATCH] tdb2: minor optimization for set_header We actually only need the bottom 5 bits of the hash value, so don't waste 8 bytes passing it. --- ccan/tdb2/free.c | 4 ++-- ccan/tdb2/private.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ccan/tdb2/free.c b/ccan/tdb2/free.c index 2b07fdff..e6e77bf6 100644 --- a/ccan/tdb2/free.c +++ b/ccan/tdb2/free.c @@ -516,7 +516,7 @@ static tdb_off_t get_free(struct tdb_context *tdb, size_t size, int set_header(struct tdb_context *tdb, struct tdb_used_record *rec, uint64_t keylen, uint64_t datalen, - uint64_t actuallen, uint64_t hash, + uint64_t actuallen, unsigned hashlow, unsigned int zone_bits) { uint64_t keybits = (fls64(keylen) + 1) / 2; @@ -524,7 +524,7 @@ int set_header(struct tdb_context *tdb, /* Use bottom bits of hash, so it's independent of hash table size. */ rec->magic_and_meta = zone_bits - | ((hash & ((1 << 5)-1)) << 6) + | ((hashlow & ((1 << 5)-1)) << 6) | ((actuallen - (keylen + datalen)) << 11) | (keybits << 43) | (TDB_MAGIC << 48); diff --git a/ccan/tdb2/private.h b/ccan/tdb2/private.h index 6c727aff..6780fdad 100644 --- a/ccan/tdb2/private.h +++ b/ccan/tdb2/private.h @@ -380,7 +380,7 @@ int add_free_record(struct tdb_context *tdb, unsigned int zone_bits, int set_header(struct tdb_context *tdb, struct tdb_used_record *rec, uint64_t keylen, uint64_t datalen, - uint64_t actuallen, uint64_t hash, + uint64_t actuallen, unsigned hashlow, unsigned int zone_bits); /* Used by tdb_check to verify. */ -- 2.39.2