Merge pull request #394 from ironhidegames/csharp-aot-ios

Solves AOT compilation issue for Unity - iOS
diff --git a/csharp/src/ProtocolBuffers/ExtensionRegistryLite.cs b/csharp/src/ProtocolBuffers/ExtensionRegistryLite.cs
index d1220e9..cc4a50b 100644
--- a/csharp/src/ProtocolBuffers/ExtensionRegistryLite.cs
+++ b/csharp/src/ProtocolBuffers/ExtensionRegistryLite.cs
@@ -96,7 +96,7 @@
     {

         private static readonly ExtensionRegistry empty = new ExtensionRegistry(

             new ExtensionByNameMap(),

-            new ExtensionByIdMap(),

+            new ExtensionByIdMap(new ExtensionIntPairEqualityComparer()),

             true);

 

         private readonly ExtensionByNameMap extensionsByName;

@@ -116,7 +116,7 @@
         /// </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 @@
                 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();

+            }

+        }

     }

-}
\ No newline at end of file
+}