Author: ankit
Date: 2005-11-16 08:28:47 -0500 (Wed, 16 Nov 2005)
New Revision: 53112
Modified:
trunk/mono/mono/metadata/ChangeLog
trunk/mono/mono/metadata/class.c
trunk/mono/mono/metadata/metadata.c
Log:
* class.c (my_mono_class_from_generic_parameter): param->owner can be null.
* metadata.c (mono_metadata_parse_generic_param): Create a dummy
MonoGenericParam
if generic_context is null.
(mono_metadata_generic_param_equal): param->owner can be null.
(mono_type_create_from_typespec_full): Don't cache the MonoType if
param->owner is
null.
Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog 2005-11-16 13:23:12 UTC (rev 53111)
+++ trunk/mono/mono/metadata/ChangeLog 2005-11-16 13:28:47 UTC (rev 53112)
@@ -1,3 +1,12 @@
+2005-11-16 Ankit Jain <[EMAIL PROTECTED]>
+
+ * class.c (my_mono_class_from_generic_parameter): param->owner can be
null.
+ * metadata.c (mono_metadata_parse_generic_param): Create a dummy
MonoGenericParam
+ if generic_context is null.
+ (mono_metadata_generic_param_equal): param->owner can be null.
+ (mono_type_create_from_typespec_full): Don't cache the MonoType if
param->owner is
+ null.
+
2005-11-16 Zoltan Varga <[EMAIL PROTECTED]>
* reflection.c (create_dynamic_mono_image): Set md_version_minor to
Modified: trunk/mono/mono/metadata/class.c
===================================================================
--- trunk/mono/mono/metadata/class.c 2005-11-16 13:23:12 UTC (rev 53111)
+++ trunk/mono/mono/metadata/class.c 2005-11-16 13:28:47 UTC (rev 53112)
@@ -2852,8 +2852,6 @@
if (param->pklass)
return param->pklass;
- g_assert (param->owner);
-
klass = g_new0 (MonoClass, 1);
if (param->name)
Modified: trunk/mono/mono/metadata/metadata.c
===================================================================
--- trunk/mono/mono/metadata/metadata.c 2005-11-16 13:23:12 UTC (rev 53111)
+++ trunk/mono/mono/metadata/metadata.c 2005-11-16 13:28:47 UTC (rev 53112)
@@ -1880,7 +1880,14 @@
if (rptr)
*rptr = ptr;
- g_assert (generic_context);
+ if (!generic_context) {
+ /* Create dummy MonoGenericParam */
+ MonoGenericParam *param = g_new0 (MonoGenericParam, 1);
+ param->name = g_strdup_printf ("%d", index);
+ param->num = index;
+
+ return param;
+ }
generic_container = generic_context->container;
if (!is_mvar) {
@@ -3138,7 +3145,6 @@
if (p1->num != p2->num)
return FALSE;
- g_assert (p1->owner && p2->owner);
if (p1->owner == p2->owner)
return TRUE;
@@ -3743,7 +3749,7 @@
do_mono_metadata_parse_type (type, image, generic_context, ptr, &ptr);
- if (type->type == MONO_TYPE_VAR || type->type == MONO_TYPE_MVAR) {
+ if ((type->type == MONO_TYPE_VAR || type->type == MONO_TYPE_MVAR) &&
type->data.generic_param->owner) {
MonoGenericContainer *container;
g_assert (type->data.generic_param->owner);
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches