Author: jbevain
Date: 2007-08-24 06:36:22 -0400 (Fri, 24 Aug 2007)
New Revision: 84794
Modified:
trunk/mono/mono/metadata/ChangeLog
trunk/mono/mono/metadata/class.c
Log:
2007-08-24 Jb Evain <[EMAIL PROTECTED]>
* class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
for byref types.
Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog 2007-08-24 10:31:15 UTC (rev 84793)
+++ trunk/mono/mono/metadata/ChangeLog 2007-08-24 10:36:22 UTC (rev 84794)
@@ -1,3 +1,8 @@
+2007-08-24 Jb Evain <[EMAIL PROTECTED]>
+
+ * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
+ for byref types.
+
2007-08-24 Mark Probst <[EMAIL PROTECTED]>
* threads.c: Make sure a thread gets cleaned up only once. Fixes
Modified: trunk/mono/mono/metadata/class.c
===================================================================
--- trunk/mono/mono/metadata/class.c 2007-08-24 10:31:15 UTC (rev 84793)
+++ trunk/mono/mono/metadata/class.c 2007-08-24 10:36:22 UTC (rev 84794)
@@ -187,6 +187,13 @@
ta->aname.public_key_token [0] ? (char
*)ta->aname.public_key_token : "null");
}
+static inline void
+mono_type_name_check_byref (MonoType *type, GString *str)
+{
+ if (type->byref)
+ g_string_append_c (str, '&');
+}
+
static void
mono_type_get_name_recurse (MonoType *type, GString *str, gboolean is_recursed,
MonoTypeNameFormat format)
@@ -209,6 +216,9 @@
for (i = 1; i < rank; i++)
g_string_append_c (str, ',');
g_string_append_c (str, ']');
+
+ mono_type_name_check_byref (type, str);
+
if (format == MONO_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED)
_mono_type_get_assembly_name (type->data.array->eklass,
str);
break;
@@ -222,6 +232,9 @@
mono_type_get_name_recurse (
&type->data.klass->byval_arg, str, FALSE,
nested_format);
g_string_append (str, "[]");
+
+ mono_type_name_check_byref (type, str);
+
if (format == MONO_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED)
_mono_type_get_assembly_name (type->data.klass, str);
break;
@@ -235,6 +248,9 @@
mono_type_get_name_recurse (
type->data.type, str, FALSE, nested_format);
g_string_append_c (str, '*');
+
+ mono_type_name_check_byref (type, str);
+
if (format == MONO_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED)
_mono_type_get_assembly_name (mono_class_from_mono_type
(type->data.type), str);
break;
@@ -243,6 +259,9 @@
case MONO_TYPE_MVAR:
g_assert (type->data.generic_param->name);
g_string_append (str, type->data.generic_param->name);
+
+ mono_type_name_check_byref (type, str);
+
break;
default:
klass = mono_class_from_mono_type (type);
@@ -315,6 +334,9 @@
else
g_string_append_c (str, ']');
}
+
+ mono_type_name_check_byref (type, str);
+
if ((format == MONO_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED) &&
(type->type != MONO_TYPE_VAR) && (type->type !=
MONO_TYPE_MVAR))
_mono_type_get_assembly_name (klass, str);
@@ -350,9 +372,6 @@
mono_type_get_name_recurse (type, result, FALSE, format);
- if (type->byref)
- g_string_append_c (result, '&');
-
return g_string_free (result, FALSE);
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches