X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/369233927c6fc7f398d6ff4ea14ac8d648e19eae..73cb6738b33846130c21f2903b2200fa3f1903ab:/hashtable.c diff --git a/hashtable.c b/hashtable.c index d1be1b8a..8f0a6181 100644 --- a/hashtable.c +++ b/hashtable.c @@ -1,7 +1,7 @@ /* * Routines to provide a memory-efficient hashtable. * - * Copyright (C) 2007 Wayne Davison + * Copyright (C) 2007-2008 Wayne Davison * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -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;