From d6e6333a02a900c2863200a0feff4349d4003a8d Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Mon, 4 Feb 2008 07:29:22 -0800 Subject: [PATCH] Store the key64 flag from hashtable_create() in the hashtable structure so that hashtable_find() knows which hashtable is which on a 64-bit architecture. --- hashtable.c | 5 +++-- rsync.h | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/hashtable.c b/hashtable.c index d1be1b8a..c5ba0f58 100644 --- a/hashtable.c +++ b/hashtable.c @@ -24,7 +24,7 @@ struct hashtable *hashtable_create(int size, int key64) { struct hashtable *tbl; - int node_size = key64 ? sizeof (struct ht_int64_node ) + int node_size = key64 ? sizeof (struct ht_int64_node) : sizeof (struct ht_int32_node); /* Pick a power of 2 that can hold the requested size. */ @@ -41,6 +41,7 @@ struct hashtable *hashtable_create(int size, int key64) tbl->size = size; tbl->entries = 0; tbl->node_size = node_size; + tbl->key64 = key64; return tbl; } @@ -55,7 +56,7 @@ void hashtable_destroy(struct hashtable *tbl) * already existing. Returns NULL if not allocating and not found. */ void *hashtable_find(struct hashtable *tbl, int64 key, int allocate_if_missing) { - int key64 = (tbl->node_size > sizeof (struct ht_int32_node)); + int key64 = tbl->key64; struct ht_int32_node *node; uint32 ndx; diff --git a/rsync.h b/rsync.h index 25922305..092cc999 100644 --- a/rsync.h +++ b/rsync.h @@ -540,6 +540,7 @@ struct hashtable { void *nodes; int32 size, entries; uint32 node_size; + int key64; }; struct ht_int32_node { -- 2.34.1