2010-04-08 Rodrigo Kumpera <rkumpera@novell.com>
commit67d2cdc7e3528e77d0bf404b034168e04d73be53
authorkumpera <kumpera@e3ebcda4-bce8-0310-ba0a-eca2169e7518>
Thu, 8 Apr 2010 14:53:25 +0000 (8 14:53 +0000)
committerkumpera <kumpera@e3ebcda4-bce8-0310-ba0a-eca2169e7518>
Thu, 8 Apr 2010 14:53:25 +0000 (8 14:53 +0000)
tree83bfeddd61149254898cd6f8bdbd4e73b47bab67
parentf92ce96f5bc3f0a90a283311491875ee5a88ba0e
2010-04-08 Rodrigo Kumpera  <rkumpera@novell.com>

* AssemblyBuilder.cs (GenericInstanceKey): Precalculate
GenericInstanceKey hash code since this can cause infinite
recursion when inflating "Foo<T> : Bar<Foo<T>>" parent.

* TypeBuilder.cs (IsSubclassOf): Don't delegate to base class
since the unmanaged information can be out of sync.

* TypeBuilder.cs (UnderlyingSystemType): Invert the test order
since IsEnum now is potentialy more expensive.

Fixes #594728.

git-svn-id: svn+ssh://mono-cvs.ximian.com/source/trunk/mcs@155053 e3ebcda4-bce8-0310-ba0a-eca2169e7518
class/corlib/System.Reflection.Emit/AssemblyBuilder.cs
class/corlib/System.Reflection.Emit/ChangeLog
class/corlib/System.Reflection.Emit/TypeBuilder.cs