From 0cb993900ae196fd5fa0490e0a7fe160c17bf9df Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Fri, 10 Jan 2003 16:40:46 +0000 Subject: [PATCH] more explicit layout related fixes svn path=/trunk/mono/; revision=10340 --- mono/metadata/marshal.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mono/metadata/marshal.c b/mono/metadata/marshal.c index 7b876671d41..be2903e7d2f 100644 --- a/mono/metadata/marshal.c +++ b/mono/metadata/marshal.c @@ -1856,7 +1856,8 @@ mono_marshal_get_managed_wrapper (MonoMethod *method, MonoObject *this) break; case MONO_TYPE_VALUETYPE: klass = sig->params [i]->data.klass; - if (klass->blittable || klass->enumtype) { + if (((klass->flags & TYPE_ATTRIBUTE_LAYOUT_MASK) == TYPE_ATTRIBUTE_EXPLICIT_LAYOUT) || + klass->blittable || klass->enumtype) { mono_mb_emit_ldarg (mb, i); break; } @@ -2254,7 +2255,8 @@ mono_marshal_get_native_wrapper (MonoMethod *method) break; case MONO_TYPE_VALUETYPE: klass = sig->params [i]->data.klass; - if (klass->blittable || klass->enumtype) { + if (((klass->flags & TYPE_ATTRIBUTE_LAYOUT_MASK) == TYPE_ATTRIBUTE_EXPLICIT_LAYOUT) || + klass->blittable || klass->enumtype) { mono_mb_emit_ldarg (mb, argnum); break; } -- 2.25.1