From: Gonzalo Paniagua Javier Date: Thu, 24 Jul 2003 12:54:23 +0000 (-0000) Subject: 2003-07-23 Gonzalo Paniagua Javier X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=8e67973f79e7e1d78d14b2a9b29b5be6680460bf;p=mono.git 2003-07-23 Gonzalo Paniagua Javier * exception.c: * exception.h: * icall.c: * object.h: fill in the type name for TypeLoadException. svn path=/trunk/mono/; revision=16603 --- diff --git a/mono/metadata/ChangeLog b/mono/metadata/ChangeLog index cc3d67b713a..e9313680aa1 100644 --- a/mono/metadata/ChangeLog +++ b/mono/metadata/ChangeLog @@ -1,3 +1,10 @@ +2003-07-23 Gonzalo Paniagua Javier + + * exception.c: + * exception.h: + * icall.c: + * object.h: fill in the type name for TypeLoadException. + 2003-07-23 Ravi Pratap * class.c: Fixes from Paolo in response to bug #45415 (Subclass diff --git a/mono/metadata/exception.c b/mono/metadata/exception.c index 5c6cd05277b..2417656920d 100644 --- a/mono/metadata/exception.c +++ b/mono/metadata/exception.c @@ -189,10 +189,16 @@ mono_get_exception_array_type_mismatch () } MonoException * -mono_get_exception_type_load () +mono_get_exception_type_load (MonoString *type_name) { - return mono_exception_from_name (mono_defaults.corlib, "System", - "TypeLoadException"); + MonoTypeLoadException *exc; + + exc = (MonoTypeLoadException *) mono_exception_from_name (mono_defaults.corlib, + "System", + "TypeLoadException"); + + exc->type_name = type_name; + return (MonoException *) exc; } MonoException * diff --git a/mono/metadata/exception.h b/mono/metadata/exception.h index 3480a726c7b..2f8e930ec49 100644 --- a/mono/metadata/exception.h +++ b/mono/metadata/exception.h @@ -59,7 +59,7 @@ MonoException * mono_get_exception_array_type_mismatch (void); MonoException * -mono_get_exception_type_load (void); +mono_get_exception_type_load (MonoString *type_name); MonoException * mono_get_exception_missing_method (void); diff --git a/mono/metadata/icall.c b/mono/metadata/icall.c index 394f0916bc8..c8ea51eb7cd 100644 --- a/mono/metadata/icall.c +++ b/mono/metadata/icall.c @@ -835,7 +835,7 @@ ves_icall_type_from_name (MonoString *name, g_list_free (info.modifiers); g_list_free (info.nested); if (throwOnError) /* uhm: this is a parse error, though... */ - mono_raise_exception (mono_get_exception_type_load ()); + mono_raise_exception (mono_get_exception_type_load (name)); return NULL; } @@ -860,7 +860,7 @@ ves_icall_type_from_name (MonoString *name, g_list_free (info.nested); if (!type) { if (throwOnError) - mono_raise_exception (mono_get_exception_type_load ()); + mono_raise_exception (mono_get_exception_type_load (name)); return NULL; } @@ -2203,7 +2203,7 @@ ves_icall_System_Reflection_Assembly_InternalGetType (MonoReflectionAssembly *as g_list_free (info.modifiers); g_list_free (info.nested); if (throwOnError) /* uhm: this is a parse error, though... */ - mono_raise_exception (mono_get_exception_type_load ()); + mono_raise_exception (mono_get_exception_type_load (name)); /*g_print ("failed parse\n");*/ return NULL; } @@ -2214,7 +2214,7 @@ ves_icall_System_Reflection_Assembly_InternalGetType (MonoReflectionAssembly *as g_list_free (info.nested); if (!type) { if (throwOnError) - mono_raise_exception (mono_get_exception_type_load ()); + mono_raise_exception (mono_get_exception_type_load (name)); /* g_print ("failed find\n"); */ return NULL; } diff --git a/mono/metadata/object.h b/mono/metadata/object.h index af939c47fa9..bd8d635a412 100644 --- a/mono/metadata/object.h +++ b/mono/metadata/object.h @@ -161,6 +161,12 @@ typedef struct { MonoString *param_name; } MonoArgumentException; +typedef struct { + MonoSystemException base; + MonoString *msg; + MonoString *type_name; +} MonoTypeLoadException; + typedef struct { MonoObject object; MonoObject *async_state;