2004-01-19 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mono / metadata / exception.c
index bdb75d646487514fd7a4dd15d824dfcba044cee4..14559ffde38af8d0b874b790f18258f2eb7b8870 100644 (file)
@@ -29,7 +29,15 @@ MonoException *
 mono_exception_from_name (MonoImage *image, const char *name_space,
                          const char *name)
 {
-       MonoDomain *domain = mono_domain_get ();
+       return mono_exception_from_name_domain (mono_domain_get (), image, name_space, name);
+}
+
+MonoException *
+mono_exception_from_name_domain (MonoDomain *domain,
+                                                                MonoImage *image, 
+                                                                const char* name_space, 
+                                                                const char *name)
+{
        MonoClass *klass;
        MonoObject *o;
 
@@ -102,9 +110,9 @@ mono_exception_from_name_two_strings (MonoImage *image, const char *name_space,
  *
  * Returns: the initialized exception instance.
  */
-static MonoException *
+MonoException *
 mono_exception_from_name_msg (MonoImage *image, const char *name_space,
-                                                         const char *name, const guchar *msg)
+                                 const char *name, const guchar *msg)
 {
        MonoException *ex;
        MonoDomain *domain;
@@ -210,10 +218,19 @@ mono_get_exception_type_load (MonoString *type_name)
 }
 
 MonoException *
-mono_get_exception_not_implemented ()
+mono_get_exception_not_implemented (const guchar *msg)
 {
-       return mono_exception_from_name (mono_defaults.corlib, "System",
-                                        "NotImplementedException");
+       MonoException *ex;
+       MonoDomain *domain;
+       
+       ex = mono_exception_from_name (mono_defaults.corlib, "System",
+                                      "NotImplementedException");
+       domain = ((MonoObject *)ex)->vtable->domain;
+
+       if (msg)
+               ex->message = mono_string_new (domain, msg);
+
+       return ex;
 }
 
 MonoException *