Author: raja
Date: 2007-01-11 04:13:35 -0500 (Thu, 11 Jan 2007)
New Revision: 70838

Modified:
   trunk/mono/mono/metadata/ChangeLog
   trunk/mono/mono/metadata/reflection.c
Log:
Fix mcs/tests/test-128.cs regression.
* reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
2007-01-10 change below.
[MONO_TYPE_OBJECT]: Recurse into array case.


Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog  2007-01-11 08:38:26 UTC (rev 70837)
+++ trunk/mono/mono/metadata/ChangeLog  2007-01-11 09:13:35 UTC (rev 70838)
@@ -1,3 +1,10 @@
+2007-01-11  Raja R Harinath  <[EMAIL PROTECTED]>
+
+       Fix mcs/tests/test-128.cs regression.
+       * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
+       2007-01-10 change below.
+       [MONO_TYPE_OBJECT]: Recurse into array case.
+
 2007-01-11  Raja R Harinath  <[EMAIL PROTECTED]>
 
        * class-internals.h (mono_get_inflated_generic_class): Remove.

Modified: trunk/mono/mono/metadata/reflection.c
===================================================================
--- trunk/mono/mono/metadata/reflection.c       2007-01-11 08:38:26 UTC (rev 
70837)
+++ trunk/mono/mono/metadata/reflection.c       2007-01-11 09:13:35 UTC (rev 
70838)
@@ -7827,7 +7827,7 @@
                        }
                } else {
                        for (i = 0; i < len; ++i) {
-                               encode_cattr_value (assembly, buffer, p, 
&buffer, &p, buflen, &arg_eclass->byval_arg, mono_array_get ((MonoArray*)arg, 
MonoObject*, i), NULL);
+                               encode_cattr_value (assembly, buffer, p, 
&buffer, &p, buflen, &eclass->byval_arg, mono_array_get ((MonoArray*)arg, 
MonoObject*, i), NULL);
                        }
                }
                break;
@@ -7861,10 +7861,10 @@
                        *p++ = 0x0E;
                        goto handle_enum;
                } else if (klass->rank == 1) {
-                       simple_type = MONO_TYPE_SZARRAY;
                        *p++ = 0x1D;
                        *p++ = klass->element_class->byval_arg.type;
-                       goto handle_enum;
+                       encode_cattr_value (assembly, buffer, p, &buffer, &p, 
buflen, &klass->byval_arg, arg, NULL);
+                       break;
                } else if (klass->byval_arg.type >= MONO_TYPE_BOOLEAN && 
klass->byval_arg.type <= MONO_TYPE_R8) {
                        *p++ = simple_type = klass->byval_arg.type;
                        goto handle_enum;

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

Reply via email to