Use systematic approach to generate hash

The basic idea is to hash each class member and then mix them with xor
operation.
However the `seed` must be handled with care, it should only be
introduced once when mixing the hashes of each class member, otherwise
under some circumstances the `seed` might xor with itself and thus break
the intended effect.
This commit is contained in:
Chocobo1 2020-01-27 04:04:02 +08:00
parent 1740f968df
commit 5905c085c6
No known key found for this signature in database
GPG key ID: 210D9C873253A68C
2 changed files with 2 additions and 2 deletions

View file

@ -348,7 +348,7 @@ Net::ServiceID Net::ServiceID::fromURL(const QUrl &url)
uint Net::qHash(const ServiceID &serviceID, const uint seed)
{
return ::qHash(serviceID.hostName, seed) ^ serviceID.port;
return ::qHash(serviceID.hostName, seed) ^ ::qHash(serviceID.port);
}
bool Net::operator==(const ServiceID &lhs, const ServiceID &rhs)