diff options
author | Zoltan Varga <vargaz@gmail.com> | 2006-02-19 01:04:32 +0300 |
---|---|---|
committer | Zoltan Varga <vargaz@gmail.com> | 2006-02-19 01:04:32 +0300 |
commit | 6fbae7e1ec566f740bcdca18f411e5585a03f6b4 (patch) | |
tree | a95cd8ecf6f52ac5f9f45220f56f1b4b26c401bd | |
parent | 9e98991d0872416da6fff1b7346bda7fc1029823 (diff) |
2006-02-18 Zoltan Varga <vargaz@gmail.com>
* 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.
svn path=/trunk/mono/; revision=57039
-rw-r--r-- | mono/metadata/ChangeLog | 7 | ||||
-rw-r--r-- | mono/metadata/class.c | 6 | ||||
-rw-r--r-- | mono/metadata/marshal.c | 4 |
3 files changed, 12 insertions, 5 deletions
diff --git a/mono/metadata/ChangeLog b/mono/metadata/ChangeLog index 265b5805b44..bb1bdc00499 100644 --- a/mono/metadata/ChangeLog +++ b/mono/metadata/ChangeLog @@ -1,5 +1,12 @@ 2006-02-18 Zoltan Varga <vargaz@gmail.com> + * 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. diff --git a/mono/metadata/class.c b/mono/metadata/class.c index 2e58e1cfefb..78147a46720 100644 --- a/mono/metadata/class.c +++ b/mono/metadata/class.c @@ -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> @@ -3018,8 +3019,8 @@ mono_fnptr_class_get (MonoMethodSignature *sig) 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); */ @@ -4906,7 +4907,6 @@ mono_class_set_failure (MonoClass *klass, guint32 ex_type, void *ex_data) MonoException* mono_class_get_exception_for_failure (MonoClass *klass) { - MonoException *ex; switch (klass->exception_type) { case MONO_EXCEPTION_SECURITY_INHERITANCEDEMAND: { MonoDomain *domain = mono_domain_get (); diff --git a/mono/metadata/marshal.c b/mono/metadata/marshal.c index 6c7e561be34..de6e585cc88 100644 --- a/mono/metadata/marshal.c +++ b/mono/metadata/marshal.c @@ -6240,6 +6240,7 @@ mono_marshal_emit_native_wrapper (MonoMethodBuilder *mb, MonoMethodSignature *si 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_marshal_emit_native_wrapper (MonoMethodBuilder *mb, MonoMethodSignature *si 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 @@ mono_marshal_emit_native_wrapper (MonoMethodBuilder *mb, MonoMethodSignature *si 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_marshal_emit_native_wrapper (MonoMethodBuilder *mb, MonoMethodSignature *si 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 (); |