2004-12-29 Zoltan Varga <vargaz@freemail.hu>
authorZoltan Varga <vargaz@gmail.com>
Wed, 29 Dec 2004 21:27:11 +0000 (21:27 -0000)
committerZoltan Varga <vargaz@gmail.com>
Wed, 29 Dec 2004 21:27:11 +0000 (21:27 -0000)
* marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
blittable types. Fixes #70864.

svn path=/trunk/mono/; revision=38166

mono/metadata/ChangeLog
mono/metadata/marshal.c

index d534a465adb2f92e84ca5a2fd21559e61f48045e..9fd3ab8797846b5d6e94bf4f524073bf6d5023ff 100644 (file)
@@ -1,3 +1,8 @@
+2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
+
+       * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
+       blittable types. Fixes #70864.
+
 2004-12-29  Martin Baulig  <martin@ximian.com>
 
        * icall.c
index f7be5c55f6af097e742d4a776106f70da3592a32..17a2d5f872ac2b1c54c697d6214991fa15f55c00 100644 (file)
@@ -3941,8 +3941,10 @@ mono_marshal_get_managed_wrapper (MonoMethod *method, MonoObject *this, MonoMars
                case MONO_TYPE_VALUETYPE:
                        klass = sig->ret->data.klass;
                        if (((klass->flags & TYPE_ATTRIBUTE_LAYOUT_MASK) == TYPE_ATTRIBUTE_EXPLICIT_LAYOUT) ||
-                           klass->blittable || klass->enumtype)
+                           klass->blittable || klass->enumtype) {
+                               mono_mb_emit_byte (mb, CEE_STLOC_3);
                                break;
+                       }
                        
                        /* load pointer to returned value type */
                        mono_mb_emit_byte (mb, MONO_CUSTOM_PREFIX);