mktree: long is bigger on 64-bit (v2)
PATCH 1/1 mktree: long is bigger on 64-bit (v2)
mktree's hash function assumes that long is 32 bits. Fix.
This version takes Nathan's suggestion of using sizeof(key) instead of sizeof(long).
Signed-off-by Serge Hallyn <serue-r/[email protected]>
--- mktree.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
mktree.c +1 -1
@@ -1291,7 +1291,7 @@ static void hash_exit(struct ckpt_ctx *ctx)static inline int hash_func (long key) {unsigned long hash = key *GOLDEN_RATIO_PRIME_32 ; -return (hash >> (32 -HASH_BITS )); +return (hash >> (sizeof (key)*8 -HASH_BITS )); }static int hash_insert (struct ckpt_ctx *ctx,long key,void *data)
Signature · 1 line
1.6.1.1
A message that is not in the archive (sent off-list or not yet received): 20090514022932.GA29738-r/[email protected]
Oren Laadan
Appliedapplied, thanks.
Quoted 23 lines · Serge E. Hallyn
mktree's hash function assumes that long is 32 bits. Fix.
This version takes Nathan's suggestion of using sizeof(key) instead of sizeof(long).
Signed-off-by Serge Hallyn <serue-r/[email protected]>--- mktree.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)mktree.c +1
-1@@ -1291,7 +1291,7 @@ static void hash_exit(struct ckpt_ctx *ctx)static inline int hash_func (long key) {unsigned long hash = key *GOLDEN_RATIO_PRIME_32 ; -return (hash >> (32 -HASH_BITS )); +return (hash >> (sizeof (key)*8 -HASH_BITS )); }static int hash_insert (struct ckpt_ctx *ctx,long key,void *data)