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