1
0
Fork 0

Fix d9a04ba446: Ensure MD5Hash is initialized. (#10876)

Not all instances need to be initialized as often they are copied or
written to, but doing all ensures no surprises.

Move the ^= operator to MD5Hash while we're at it.
pull/10881/head
PeterN 2023-05-26 19:17:54 +01:00 committed by GitHub
parent ba11467c02
commit 101e4e54a1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 13 additions and 13 deletions

View File

@ -57,20 +57,20 @@
static const size_t MD5_HASH_BYTES = 16;
/** Container for storing a MD5 hash/checksum/digest. */
using MD5Hash = std::array<byte, MD5_HASH_BYTES>;
/**
* Exclusively-or one hash into another hash.
* @param lhs The hash to exclusively-or into.
* @param rhs The hash to exclusively-or with.
* @return Reference to \c lhs hash.
*/
inline MD5Hash &operator^=(MD5Hash &lhs, const MD5Hash &rhs)
{
for (size_t i = 0; i < lhs.size(); i++) lhs[i] ^= rhs[i];
return lhs;
}
struct MD5Hash : std::array<byte, MD5_HASH_BYTES> {
MD5Hash() : std::array<byte, MD5_HASH_BYTES>{} {}
/**
* Exclusively-or the given hash into this hash.
* @param other The other hash.
* @return Reference to this hash.
*/
MD5Hash &operator^=(const MD5Hash &other)
{
for (size_t i = 0; i < size(); i++) this->operator[](i) ^= other[i];
return *this;
}
};
struct Md5 {
private: