Author: raja
Date: 2007-06-21 09:31:09 -0400 (Thu, 21 Jun 2007)
New Revision: 80475

Modified:
   trunk/mono/mono/metadata/ChangeLog
   trunk/mono/mono/metadata/class.c
   trunk/mono/mono/metadata/reflection.c
Log:
* reflection.c (method_encode_methodspec): Add a tripwire.
* class.c (inflate_generic_type): The fully open generic type is
not the same as the generic type definition.


Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog  2007-06-21 13:29:49 UTC (rev 80474)
+++ trunk/mono/mono/metadata/ChangeLog  2007-06-21 13:31:09 UTC (rev 80475)
@@ -1,3 +1,9 @@
+2007-06-21  Raja R Harinath  <[EMAIL PROTECTED]>
+
+       * reflection.c (method_encode_methodspec): Add a tripwire.
+       * class.c (inflate_generic_type): The fully open generic type is
+       not the same as the generic type definition.
+
 2007-06-21  Martin Baulig  <[EMAIL PROTECTED]>
 
        * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.

Modified: trunk/mono/mono/metadata/class.c
===================================================================
--- trunk/mono/mono/metadata/class.c    2007-06-21 13:29:49 UTC (rev 80474)
+++ trunk/mono/mono/metadata/class.c    2007-06-21 13:31:09 UTC (rev 80475)
@@ -524,12 +524,8 @@
 
                /* We can't use context->class_inst directly, since it can have 
more elements */
                inst = mono_metadata_inflate_generic_inst 
(container->context.class_inst, context);
-               if (inst != container->context.class_inst)
-                       gclass = mono_metadata_lookup_generic_class (klass, 
inst, klass->image->dynamic);
+               gclass = mono_metadata_lookup_generic_class (klass, inst, 
klass->image->dynamic);
 
-               if (!gclass)
-                       return NULL;
-
                nt = dup_type (type, type);
                nt->type = MONO_TYPE_GENERICINST;
                nt->data.generic_class = gclass;

Modified: trunk/mono/mono/metadata/reflection.c
===================================================================
--- trunk/mono/mono/metadata/reflection.c       2007-06-21 13:29:49 UTC (rev 
80474)
+++ trunk/mono/mono/metadata/reflection.c       2007-06-21 13:31:09 UTC (rev 
80475)
@@ -2413,6 +2413,7 @@
        table = &assembly->tables [MONO_TABLE_METHODSPEC];
 
        g_assert (method->is_inflated);
+       g_assert (!method->klass->generic_container);
        imethod = (MonoMethodInflated *) method;
        declaring = imethod->declaring;
 

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

Reply via email to