summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2015-10-04 01:14:41 +0200
committerTom Gundersen <teg@jklm.no>2015-10-05 18:19:18 +0200
commit57217c8f2a2dea07b41ecf05000172ce77a90466 (patch)
treea84788a8c023bac7ab897b89f26301ec84c80637 /src
parent1283d704172cb3852c717fe8cfaebe7a56d0aebf (diff)
downloadsystemd-57217c8f2a2dea07b41ecf05000172ce77a90466.tar.gz
systemd-57217c8f2a2dea07b41ecf05000172ce77a90466.tar.bz2
systemd-57217c8f2a2dea07b41ecf05000172ce77a90466.zip
test: hashmap - cripple the hash function by truncating the input rather than the output
The reason for the crippled hash function is to reduce the distribution of the hash function, do this by truncating the domain rather than the range. This does introduce a change in behavoir as the range is no longer contiguous, which greatly reduces collisions. This is needed as a follow-up patch will no longer allow individual hash functions to alter the output directly.
Diffstat (limited to 'src')
-rw-r--r--src/test/test-hashmap-plain.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/test/test-hashmap-plain.c b/src/test/test-hashmap-plain.c
index 057b6c1dc1..33ac93b395 100644
--- a/src/test/test-hashmap-plain.c
+++ b/src/test/test-hashmap-plain.c
@@ -693,7 +693,7 @@ static void test_hashmap_get2(void) {
}
static unsigned long crippled_hashmap_func(const void *p, const uint8_t hash_key[HASH_KEY_SIZE]) {
- return trivial_hash_func(p, hash_key) & 0xff;
+ return trivial_hash_func(INT_TO_PTR(PTR_TO_INT(p) & 0xff), hash_key);
}
static const struct hash_ops crippled_hashmap_ops = {