summaryrefslogtreecommitdiff
path: root/base
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2020-08-29 22:37:17 +0200
committerZdenek Kabelac <zkabelac@redhat.com>2020-09-01 17:57:50 +0200
commit1ff1e86debe29abc0ac706e5e7b89fc5192f191f (patch)
tree8f509b895ac092836d882b6e331497707c3f8be8 /base
parent4baedfc5787e5b87cfb3f4b0ea13a6ae9bc9c52e (diff)
downloadlvm2-1ff1e86debe29abc0ac706e5e7b89fc5192f191f.tar.gz
cleanup: better expressing passing key arg to _hash
Diffstat (limited to 'base')
-rw-r--r--base/data-struct/hash.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/base/data-struct/hash.c b/base/data-struct/hash.c
index 5ef5ed276..d60f28a25 100644
--- a/base/data-struct/hash.c
+++ b/base/data-struct/hash.c
@@ -59,26 +59,27 @@ static unsigned char _nums[] = {
209
};
-static struct dm_hash_node *_create_node(const char *str, unsigned len)
+static struct dm_hash_node *_create_node(const void *key, unsigned len)
{
struct dm_hash_node *n = malloc(sizeof(*n) + len);
if (n) {
- memcpy(n->key, str, len);
+ memcpy(n->key, key, len);
n->keylen = len;
}
return n;
}
-static unsigned long _hash(const char *str, unsigned len)
+static unsigned long _hash(const void *key, unsigned len)
{
+ const unsigned char *str = key;
unsigned long h = 0, g;
unsigned i;
for (i = 0; i < len; i++) {
h <<= 4;
- h += _nums[(unsigned char) *str++];
+ h += _nums[*str++];
g = h & ((unsigned long) 0xf << 16u);
if (g) {
h ^= g >> 16u;