12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #include "il2cpp-config.h"
- #include "il2cpp-class-internals.h"
- #include "Il2CppSignature.h"
- #include "Il2CppTypeCompare.h"
- #include "Il2CppTypeHash.h"
- #include "utils/HashUtils.h"
- using il2cpp::utils::HashUtils;
- namespace il2cpp
- {
- namespace metadata
- {
- size_t Il2CppSignatureHash::operator()(const Il2CppSignature& signature) const
- {
- return Hash(signature);
- }
- size_t Il2CppSignatureHash::Hash(const Il2CppSignature& signature)
- {
- size_t retVal = signature.Count;
- for (size_t i = 0; i < signature.Count; ++i)
- retVal = HashUtils::Combine(retVal, Il2CppTypeHash::Hash(signature.Types[i]));
- return retVal;
- }
- bool Il2CppSignatureCompare::operator()(const Il2CppSignature& s1, const Il2CppSignature& s2) const
- {
- return Equals(s1, s2);
- }
- bool Il2CppSignatureCompare::Equals(const Il2CppSignature& s1, const Il2CppSignature& s2)
- {
- if (s1.Count != s2.Count)
- return false;
- for (size_t i = 0; i < s1.Count; ++i)
- {
- if (!Il2CppTypeEqualityComparer::AreEqual(s1.Types[i], s2.Types[i]))
- return false;
- }
- return true;
- }
- } /* namespace metadata */
- } /* namespace il2cpp */
|