Author: zoltan
Date: 2008-02-05 10:46:59 -0500 (Tue, 05 Feb 2008)
New Revision: 94896
Modified:
trunk/mono/mono/metadata/ChangeLog
trunk/mono/mono/metadata/marshal.c
Log:
2008-02-05 Zoltan Varga <[EMAIL PROTECTED]>
* marshal.c (mono_marshal_get_ptr_to_struct): Make the signature
non-pinvoke.
(mono_marshal_get_struct_to_ptr): Ditto.
Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog 2008-02-05 15:35:53 UTC (rev 94895)
+++ trunk/mono/mono/metadata/ChangeLog 2008-02-05 15:46:59 UTC (rev 94896)
@@ -1,5 +1,8 @@
2008-02-05 Zoltan Varga <[EMAIL PROTECTED]>
+ * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature
non-pinvoke.
+ (mono_marshal_get_struct_to_ptr): Ditto.
+
* marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of
cctor_signature.
Modified: trunk/mono/mono/metadata/marshal.c
===================================================================
--- trunk/mono/mono/metadata/marshal.c 2008-02-05 15:35:53 UTC (rev 94895)
+++ trunk/mono/mono/metadata/marshal.c 2008-02-05 15:46:59 UTC (rev 94896)
@@ -9145,7 +9145,7 @@
mono_mb_emit_byte (mb, CEE_RET);
- res = mono_mb_create_method (mb, mono_method_signature (stoptr), 0);
+ res = mono_mb_create_method (mb, signature_no_pinvoke (stoptr), 0);
mono_mb_free (mb);
klass->marshal_info->str_to_ptr = res;
@@ -9172,11 +9172,18 @@
if (klass->marshal_info->ptr_to_str)
return klass->marshal_info->ptr_to_str;
- if (!ptostr)
+ if (!ptostr) {
+ MonoMethodSignature *sig;
+
/* Create the signature corresponding to
static void PtrToStructure (IntPtr ptr, object
structure);
defined in
class/corlib/System.Runtime.InteropServices/Marshal.cs */
- ptostr = mono_create_icall_signature ("void ptr object");
+ sig = mono_create_icall_signature ("void ptr object");
+ sig = signature_dup (mono_defaults.corlib, sig);
+ sig->pinvoke = 0;
+ mono_memory_barrier ();
+ ptostr = sig;
+ }
mb = mono_mb_new (klass, "PtrToStructure", MONO_WRAPPER_UNKNOWN);
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches