Author: raja
Date: 2007-01-11 06:03:31 -0500 (Thu, 11 Jan 2007)
New Revision: 70849

Modified:
   trunk/mono/mono/metadata/ChangeLog
   trunk/mono/mono/metadata/metadata.c
Log:
Fix IronPython regression mentioned in #80249
* metadata.c (do_mono_metadata_parse_generic_class): Clear
'cached_context' field, since it may have been initialized as a
side-effect of metadata parsing.


Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog  2007-01-11 10:21:18 UTC (rev 70848)
+++ trunk/mono/mono/metadata/ChangeLog  2007-01-11 11:03:31 UTC (rev 70849)
@@ -1,5 +1,10 @@
 2007-01-11  Raja R Harinath  <[EMAIL PROTECTED]>
 
+       Fix IronPython regression mentioned in #80249
+       * metadata.c (do_mono_metadata_parse_generic_class): Clear
+       'cached_context' field, since it may have been initialized as a
+       side-effect of metadata parsing.
+
        * class-internals.h (_MonoGenericClass.is_inflated): Remove.
        (_MonoGenericClass.cached_class): Move here and rename from lone
        remaining field of ...

Modified: trunk/mono/mono/metadata/metadata.c
===================================================================
--- trunk/mono/mono/metadata/metadata.c 2007-01-11 10:21:18 UTC (rev 70848)
+++ trunk/mono/mono/metadata/metadata.c 2007-01-11 11:03:31 UTC (rev 70849)
@@ -2031,6 +2031,11 @@
        count = mono_metadata_decode_value (ptr, &ptr);
 
        gclass->inst = mono_metadata_parse_generic_inst (m, container, count, 
ptr, &ptr);
+       /* FIXME: this hack is needed to handle the incestuous relationship 
between metadata parsing and MonoClass. */
+       if (gclass->cached_context) {
+               g_free (gclass->cached_context);
+               gclass->cached_context = NULL;
+       }
 
        if (rptr)
                *rptr = ptr;

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

Reply via email to