2003-07-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
authorGonzalo Paniagua Javier <gonzalo.mono@gmail.com>
Thu, 24 Jul 2003 12:54:23 +0000 (12:54 -0000)
committerGonzalo Paniagua Javier <gonzalo.mono@gmail.com>
Thu, 24 Jul 2003 12:54:23 +0000 (12:54 -0000)
* exception.c:
* exception.h:
* icall.c:
* object.h: fill in the type name for TypeLoadException.

svn path=/trunk/mono/; revision=16603

mono/metadata/ChangeLog
mono/metadata/exception.c
mono/metadata/exception.h
mono/metadata/icall.c
mono/metadata/object.h

index cc3d67b713af4c41457e3fde47b502f0f32f8b9c..e9313680aa101def4fa35635420d497214e13d81 100644 (file)
@@ -1,3 +1,10 @@
+2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * exception.c:
+       * exception.h:
+       * icall.c:
+       * object.h: fill in the type name for TypeLoadException.
+
 2003-07-23  Ravi Pratap  <ravi@ximian.com>
 
        * class.c: Fixes from Paolo in response to bug #45415 (Subclass
index 5c6cd05277b34b42f38feca7401dde71403d8e74..2417656920d1de7844157f98d2ea34fd5919ea85 100644 (file)
@@ -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 *
index 3480a726c7b7eb5c3af6c021f618e6ffdd079883..2f8e930ec49c8ecba54077232aaf6fcbe012db65 100644 (file)
@@ -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);
index 394f0916bc8d7485eafd8d6944ffea59baa69f2a..c8ea51eb7cd6b6df400176218ebaa9222aa426f3 100644 (file)
@@ -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;
        }
index af939c47fa9cd15b0ca1a41971ac38dd39e74d7c..bd8d635a4127b73ebf63ad7995a4cf0a15637d9e 100644 (file)
@@ -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;