From: Wayne Davison Date: Mon, 4 Feb 2008 15:29:22 +0000 (-0800) Subject: Store the key64 flag from hashtable_create() in the hashtable structure X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/d6e6333a02a900c2863200a0feff4349d4003a8d 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. --- 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 {