Author: zoltan
Date: 2007-02-28 13:43:23 -0500 (Wed, 28 Feb 2007)
New Revision: 73567
Modified:
trunk/mono/mono/metadata/ChangeLog
trunk/mono/mono/metadata/marshal.c
Log:
2007-02-28 Zoltan Varga <[EMAIL PROTECTED]>
* marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling
HandleRefs.
(emit_marshal_handleref): Ditto.
Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog 2007-02-28 18:13:27 UTC (rev 73566)
+++ trunk/mono/mono/metadata/ChangeLog 2007-02-28 18:43:23 UTC (rev 73567)
@@ -1,5 +1,8 @@
2007-02-28 Zoltan Varga <[EMAIL PROTECTED]>
+ * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling
HandleRefs.
+ (emit_marshal_handleref): Ditto.
+
* profiler.c: Applied patch from Tor Lillqvist ([EMAIL PROTECTED]) to
fix output
on Visual C++. Fixes #80671.
Modified: trunk/mono/mono/metadata/marshal.c
===================================================================
--- trunk/mono/mono/metadata/marshal.c 2007-02-28 18:13:27 UTC (rev 73566)
+++ trunk/mono/mono/metadata/marshal.c 2007-02-28 18:43:23 UTC (rev 73567)
@@ -2426,7 +2426,8 @@
case MONO_MARSHAL_CONV_HANDLEREF: {
mono_mb_emit_ldloc (mb, 1);
mono_mb_emit_ldloc (mb, 0);
- mono_mb_emit_ldflda (mb, G_STRUCT_OFFSET (MonoHandleRef,
handle));
+ mono_mb_emit_icon (mb, G_STRUCT_OFFSET (MonoHandleRef, handle));
+ mono_mb_emit_byte (mb, CEE_ADD);
mono_mb_emit_byte (mb, CEE_LDIND_I);
mono_mb_emit_byte (mb, CEE_STIND_I);
break;
@@ -6478,8 +6479,9 @@
"HandleRefs can not be returned from unmanaged
code (or passed by ref)");
break;
}
- mono_mb_emit_ldarg (mb, argnum);
- mono_mb_emit_ldflda (mb, G_STRUCT_OFFSET (MonoHandleRef,
handle));
+ mono_mb_emit_ldarg_addr (mb, argnum);
+ mono_mb_emit_icon (mb, G_STRUCT_OFFSET (MonoHandleRef, handle));
+ mono_mb_emit_byte (mb, CEE_ADD);
mono_mb_emit_byte (mb, CEE_LDIND_I);
mono_mb_emit_stloc (mb, conv_arg);
break;
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches