Author: martin
Date: 2005-06-20 12:45:06 -0400 (Mon, 20 Jun 2005)
New Revision: 46246

Modified:
   trunk/mono/mono/metadata/ChangeLog
   trunk/mono/mono/metadata/class.c
Log:
2005-06-20  Martin Baulig  <[EMAIL PROTECTED]>

        * class.c (mono_class_is_assignable_from): Use a custom version of
        mono_class_has_parent() to make things work for generic instances;
        fix #75300.



Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog  2005-06-20 16:19:59 UTC (rev 46245)
+++ trunk/mono/mono/metadata/ChangeLog  2005-06-20 16:45:06 UTC (rev 46246)
@@ -1,5 +1,11 @@
 2005-06-20  Martin Baulig  <[EMAIL PROTECTED]>
 
+       * class.c (mono_class_is_assignable_from): Use a custom version of
+       mono_class_has_parent() to make things work for generic instances;
+       fix #75300.
+
+2005-06-20  Martin Baulig  <[EMAIL PROTECTED]>
+
        * loader.c (method_from_methodspec): Apply a patch from
        Kamil Skalski <[EMAIL PROTECTED]> to fix #75296.
 

Modified: trunk/mono/mono/metadata/class.c
===================================================================
--- trunk/mono/mono/metadata/class.c    2005-06-20 16:19:59 UTC (rev 46245)
+++ trunk/mono/mono/metadata/class.c    2005-06-20 16:45:06 UTC (rev 46246)
@@ -3457,7 +3457,19 @@
                if (klass == mono_defaults.object_class)
                        return TRUE;
 
-       return mono_class_has_parent (oklass, klass);
+       /*
+        * Custom version of mono_class_has_parent (oklass, klass)
+        */
+       if (oklass->idepth >= klass->idepth) {
+               MonoClass *parent = oklass->supertypes [klass->idepth - 1];
+
+               if (parent->generic_class)
+                       parent = parent->generic_class->container_class;
+
+               return klass == parent;
+       }
+
+       return FALSE;
 }      
 
 /*

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to