diff options
Diffstat (limited to 'src/MessagePack.UnityClient/Assets/Scripts/MessagePack/MessagePackSecurity.cs')
-rw-r--r-- | src/MessagePack.UnityClient/Assets/Scripts/MessagePack/MessagePackSecurity.cs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/MessagePackSecurity.cs b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/MessagePackSecurity.cs index c362f915..2b743afa 100644 --- a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/MessagePackSecurity.cs +++ b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/MessagePackSecurity.cs @@ -255,7 +255,7 @@ namespace MessagePack /// </summary> private class ObjectFallbackEqualityComparer : IEqualityComparer<object>, IEqualityComparer { - private static readonly MethodInfo GetHashCollisionResistantEqualityComparerOpenGenericMethod = typeof(MessagePackSecurity).GetTypeInfo().DeclaredMethods.Single(m => m.Name == nameof(MessagePackSecurity.GetHashCollisionResistantEqualityComparer) && m.IsGenericMethod); + private static readonly Lazy<MethodInfo> GetHashCollisionResistantEqualityComparerOpenGenericMethod = new Lazy<MethodInfo>(() => typeof(MessagePackSecurity).GetTypeInfo().DeclaredMethods.Single(m => m.Name == nameof(MessagePackSecurity.GetHashCollisionResistantEqualityComparer) && m.IsGenericMethod)); private readonly MessagePackSecurity security; private readonly ThreadsafeTypeKeyHashTable<IEqualityComparer> equalityComparerCache = new ThreadsafeTypeKeyHashTable<IEqualityComparer>(); @@ -288,7 +288,7 @@ namespace MessagePack { try { - equalityComparer = (IEqualityComparer)GetHashCollisionResistantEqualityComparerOpenGenericMethod.MakeGenericMethod(valueType).Invoke(this.security, Array.Empty<object>()); + equalityComparer = (IEqualityComparer)GetHashCollisionResistantEqualityComparerOpenGenericMethod.Value.MakeGenericMethod(valueType).Invoke(this.security, Array.Empty<object>()); } catch (TargetInvocationException ex) { @@ -334,8 +334,8 @@ namespace MessagePack value = float.NaN; } - long l = *(long*)&value; - return HashCode.Combine((int)(l >> 32), unchecked((int)l)); + int l = *(int*)&value; + return l; } } |