added concrete IEqualityComparer<ExtensionIntPair> implementation in ExtensionRegistryLite.cs to prevent AOT compilation issue with unity in iOS

This commit is contained in:
Ruben Garat 2015-05-15 16:06:59 -03:00
parent a526605aec
commit 83bcfefb0b

View File

@ -96,7 +96,7 @@ namespace Google.ProtocolBuffers
{
private static readonly ExtensionRegistry empty = new ExtensionRegistry(
new ExtensionByNameMap(),
new ExtensionByIdMap(),
new ExtensionByIdMap(new ExtensionIntPairEqualityComparer()),
true);
private readonly ExtensionByNameMap extensionsByName;
@ -116,7 +116,7 @@ namespace Google.ProtocolBuffers
/// </summary>
public static ExtensionRegistry CreateInstance()
{
return new ExtensionRegistry(new ExtensionByNameMap(), new ExtensionByIdMap(), false);
return new ExtensionRegistry(new ExtensionByNameMap(), new ExtensionByIdMap(new ExtensionIntPairEqualityComparer()), false);
}
public ExtensionRegistry AsReadOnly()
@ -216,5 +216,17 @@ namespace Google.ProtocolBuffers
return msgType.Equals(other.msgType) && number == other.number;
}
}
internal class ExtensionIntPairEqualityComparer : IEqualityComparer<ExtensionIntPair>
{
public bool Equals(ExtensionIntPair x, ExtensionIntPair y)
{
return x.Equals(y);
}
public int GetHashCode(ExtensionIntPair obj)
{
return obj.GetHashCode();
}
}
}
}
}