2009-04-30 Rodrigo Kumpera <rkumpera@novell.com>
authorRodrigo Kumpera <kumpera@gmail.com>
Thu, 30 Apr 2009 23:01:09 +0000 (23:01 -0000)
committerRodrigo Kumpera <kumpera@gmail.com>
Thu, 30 Apr 2009 23:01:09 +0000 (23:01 -0000)
* class.c (mono_type_get_name_recurse): Don't crash
for ownerless generic params.

* debug-helpers.c (mono_type_get_desc): Correct the format
for ownerless generic params.

svn path=/trunk/mono/; revision=133237

mono/metadata/ChangeLog
mono/metadata/class.c
mono/metadata/debug-helpers.c

index 21279153ab3a9309d8e96e4ece728784a777899b..bca6cf878856b3f76b530f48b97fda215bad0f2a 100644 (file)
@@ -1,3 +1,11 @@
+2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class.c (mono_type_get_name_recurse): Don't crash
+       for ownerless generic params.
+
+       * debug-helpers.c (mono_type_get_desc): Correct the format
+       for ownerless generic params.
+
 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
 
        * metadata-verify.c: Verify the class layout table.
index 4f784dcf910ce6a4478b6cd46b9dfd11e2861bae..1194ee945f8edfa9bf0da91fba35e4716447a883 100644 (file)
@@ -297,9 +297,11 @@ mono_type_get_name_recurse (MonoType *type, GString *str, gboolean is_recursed,
        }
        case MONO_TYPE_VAR:
        case MONO_TYPE_MVAR:
-               g_assert (mono_generic_param_info (type->data.generic_param)->name);
-               g_string_append (str, mono_generic_param_info (type->data.generic_param)->name);
-       
+               if (!mono_generic_param_info (type->data.generic_param))
+                       g_string_append_printf (str, "%s%d", type->type == MONO_TYPE_VAR ? "!" : "!!", type->data.generic_param->num);
+               else
+                       g_string_append (str, mono_generic_param_info (type->data.generic_param)->name);
+
                mono_type_name_check_byref (type, str);
 
                break;
index eaf11cf043d5f03a9f1e626634ea92db5f67270a..1fbceeb9d170d8f90cbb3fe3f49ab352559213cd 100644 (file)
@@ -176,7 +176,7 @@ mono_type_get_desc (GString *res, MonoType *type, gboolean include_namespace)
                        if (info)
                                g_string_append (res, info->name);
                        else
-                               g_string_append_printf (res, "<%s%d>", type->type == MONO_TYPE_VAR ? "!" : "!!", mono_generic_param_num (type->data.generic_param));
+                               g_string_append_printf (res, "%s%d", type->type == MONO_TYPE_VAR ? "!" : "!!", mono_generic_param_num (type->data.generic_param));
                } else {
                        g_string_append (res, "<unknown>");
                }