Author: miguel
Date: 2005-11-01 15:18:01 -0500 (Tue, 01 Nov 2005)
New Revision: 52459

Modified:
   trunk/mono/mono/metadata/string-icalls.c
Log:
2005-11-01  Miguel de Icaza  <[EMAIL PROTECTED]>

        * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
        sure that we lookup GetString method from the System.Text.Encoding
        class, not the derived class or we get an empty method.

        Fixed class #76612.



Modified: trunk/mono/mono/metadata/string-icalls.c
===================================================================
--- trunk/mono/mono/metadata/string-icalls.c    2005-11-01 20:06:50 UTC (rev 
52458)
+++ trunk/mono/mono/metadata/string-icalls.c    2005-11-01 20:18:01 UTC (rev 
52459)
@@ -202,7 +202,7 @@
 
 MonoString *
 ves_icall_System_String_ctor_encoding (gpointer dummy, gint8 *value, gint32 
sindex, 
-                                   gint32 length, MonoObject *enc)
+                                      gint32 length, MonoObject *enc)
 {
        MonoArray *arr;
        MonoString *s;
@@ -210,6 +210,7 @@
        MonoDomain *domain = mono_domain_get ();
        MonoMethod *get_string;
        gpointer args [1];
+       MonoClass *klass;
 
        MONO_ARCH_SAVE_REGS;
 
@@ -225,7 +226,11 @@
        arr = mono_array_new (domain, mono_defaults.byte_class, length);
        memcpy (mono_array_addr (arr, guint8*, 0), value + sindex, length);
 
-       get_string = mono_class_get_method_from_name (enc->vtable->klass, 
"GetString", 1);
+       /* Find the System.Text.Encoding class */
+       for (klass = enc->vtable->klass; klass->parent->parent != NULL; klass = 
klass->parent)
+               ;
+       
+       get_string = mono_class_get_method_from_name (klass, "GetString", 1);
        args [0] = arr;
        s = (MonoString*)mono_runtime_invoke (get_string, enc, args, &exc);
        if (!s || exc)

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

Reply via email to