------- Original message -------
From: Ruediger Pluem

Don't we have the same issue here as with the XOR version of the patch?
If two different keys (key1, key2) result in the same hash value (so ht->hash_func(key1, &klen1) == ht->hash_func(key2, &klen2);) doesn't hashfunc_default result in the same hash value for both keys since the input value to hash
is the same?

For two keys to cause a collision, the modulo (i.e. the index) has to be the same, not necessarily the whole hash. So, with xor, we don't gain anything by using seed against the final hash (modulo will change, but in the same way for both hash values - the collision will move to a different bucket). With the hash function, as long as the hash is not completely the same, we will most likely get a different modulo and therefore a different index into the table.

Make sense?

--
Bojan

Reply via email to