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( private static readonly ExtensionRegistry empty = new ExtensionRegistry(
new ExtensionByNameMap(), new ExtensionByNameMap(),
new ExtensionByIdMap(), new ExtensionByIdMap(new ExtensionIntPairEqualityComparer()),
true); true);
private readonly ExtensionByNameMap extensionsByName; private readonly ExtensionByNameMap extensionsByName;
@ -116,7 +116,7 @@ namespace Google.ProtocolBuffers
/// </summary> /// </summary>
public static ExtensionRegistry CreateInstance() 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() public ExtensionRegistry AsReadOnly()
@ -216,5 +216,17 @@ namespace Google.ProtocolBuffers
return msgType.Equals(other.msgType) && number == other.number; 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();
}
}
} }
} }