Author: gonzalo
Date: 2006-02-28 16:27:06 -0500 (Tue, 28 Feb 2006)
New Revision: 57432
Modified:
branches/mono-1-1-13/mono/mono/metadata/ChangeLog
branches/mono-1-1-13/mono/mono/metadata/class.c
branches/mono-1-1-13/mono/mono/metadata/marshal.c
Log:
r57039,57238 from HEAD
Modified: branches/mono-1-1-13/mono/mono/metadata/ChangeLog
===================================================================
--- branches/mono-1-1-13/mono/mono/metadata/ChangeLog 2006-02-28 21:23:03 UTC
(rev 57431)
+++ branches/mono-1-1-13/mono/mono/metadata/ChangeLog 2006-02-28 21:27:06 UTC
(rev 57432)
@@ -1,5 +1,17 @@
+2006-02-24 Zoltan Varga <[EMAIL PROTECTED]>
+
+ * marshal.c (mono_marshal_free_asany): Fix handling of blittable
+ formatted classes. Fixes #77524.
+
2006-02-18 Zoltan Varga <[EMAIL PROTECTED]>
+ * class.c (mono_class_get_exception_for_failure): Fix a warning.
+
+ * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
+ return values. Fixes #77581.
+
+ * class.c (mono_fnptr_class_get): Switch name and name_space.
+
* marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
classes and add support for [In, Out] attributes.
(mono_marshal_free_asany): Ditto. Fixes #77524.
Modified: branches/mono-1-1-13/mono/mono/metadata/class.c
===================================================================
--- branches/mono-1-1-13/mono/mono/metadata/class.c 2006-02-28 21:23:03 UTC
(rev 57431)
+++ branches/mono-1-1-13/mono/mono/metadata/class.c 2006-02-28 21:27:06 UTC
(rev 57432)
@@ -32,6 +32,7 @@
#include <mono/metadata/mono-endian.h>
#include <mono/metadata/debug-helpers.h>
#include <mono/metadata/reflection.h>
+#include <mono/metadata/exception.h>
#include <mono/metadata/security-manager.h>
#include <mono/os/gc_wrapper.h>
@@ -3016,8 +3017,8 @@
result = g_new0 (MonoClass, 1);
result->parent = NULL; /* no parent for PTR types */
- result->name = "System";
- result->name_space = "MonoFNPtrFakeClass";
+ result->name_space = "System";
+ result->name = "MonoFNPtrFakeClass";
result->image = NULL; /* need to fix... */
result->inited = TRUE;
result->flags = TYPE_ATTRIBUTE_CLASS; /* | (el_class->flags &
TYPE_ATTRIBUTE_VISIBILITY_MASK); */
Modified: branches/mono-1-1-13/mono/mono/metadata/marshal.c
===================================================================
--- branches/mono-1-1-13/mono/mono/metadata/marshal.c 2006-02-28 21:23:03 UTC
(rev 57431)
+++ branches/mono-1-1-13/mono/mono/metadata/marshal.c 2006-02-28 21:27:06 UTC
(rev 57432)
@@ -6240,6 +6240,7 @@
case MONO_TYPE_R8:
case MONO_TYPE_I8:
case MONO_TYPE_U8:
+ case MONO_TYPE_FNPTR:
mono_mb_emit_ldarg (mb, argnum);
break;
case MONO_TYPE_VALUETYPE:
@@ -6263,7 +6264,6 @@
mono_mb_emit_ldarg (mb, argnum);
break;
case MONO_TYPE_TYPEDBYREF:
- case MONO_TYPE_FNPTR:
default:
g_warning ("type 0x%02x unknown", t->type);
g_assert_not_reached ();
@@ -6311,6 +6311,7 @@
case MONO_TYPE_R8:
case MONO_TYPE_I8:
case MONO_TYPE_U8:
+ case MONO_TYPE_FNPTR:
/* no conversions necessary */
mono_mb_emit_stloc (mb, 3);
break;
@@ -6335,7 +6336,6 @@
mono_mb_emit_stloc (mb, 3);
break;
case MONO_TYPE_TYPEDBYREF:
- case MONO_TYPE_FNPTR:
default:
g_warning ("return type 0x%02x unknown",
sig->ret->type);
g_assert_not_reached ();
@@ -8513,8 +8513,8 @@
case MONO_TYPE_VALUETYPE: {
klass = t->data.klass;
- if (((klass->flags & TYPE_ATTRIBUTE_LAYOUT_MASK) ==
TYPE_ATTRIBUTE_EXPLICIT_LAYOUT) ||
- klass->blittable || klass->enumtype)
+ if (klass->valuetype && (((klass->flags &
TYPE_ATTRIBUTE_LAYOUT_MASK) == TYPE_ATTRIBUTE_EXPLICIT_LAYOUT) ||
+
klass->blittable || klass->enumtype))
break;
if (param_attrs & PARAM_ATTRIBUTE_OUT) {
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches