Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZoltan Varga <vargaz@gmail.com>2006-02-19 01:04:32 +0300
committerZoltan Varga <vargaz@gmail.com>2006-02-19 01:04:32 +0300
commit6fbae7e1ec566f740bcdca18f411e5585a03f6b4 (patch)
treea95cd8ecf6f52ac5f9f45220f56f1b4b26c401bd
parent9e98991d0872416da6fff1b7346bda7fc1029823 (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/ChangeLog7
-rw-r--r--mono/metadata/class.c6
-rw-r--r--mono/metadata/marshal.c4
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 ();