X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fexception.c;h=fa1d6126ac8e18c85ccf058dbd1a12cc05a50b28;hb=521420b029b0f018456d8535058a6b958ee0e58e;hp=469561cb8528d2ebef33b42aa4a3b39d91907df5;hpb=a0a29572f61c9ae6df0b72466f04ebd011de4bab;p=mono.git diff --git a/mono/metadata/exception.c b/mono/metadata/exception.c index 469561cb852..fa1d6126ac8 100644 --- a/mono/metadata/exception.c +++ b/mono/metadata/exception.c @@ -163,7 +163,7 @@ mono_exception_from_name_msg (MonoImage *image, const char *name_space, ex = mono_exception_from_name (image, name_space, name); if (msg) - ex->message = mono_string_new (mono_object_get_domain ((MonoObject*)ex), msg); + MONO_OBJECT_SETREF (ex, message, mono_string_new (mono_object_get_domain ((MonoObject*)ex), msg)); return ex; } @@ -337,15 +337,19 @@ mono_get_exception_type_load (MonoString *class_name, char *assembly_name) MonoException * mono_get_exception_not_implemented (const char *msg) { - MonoException *ex; - - ex = mono_exception_from_name (mono_get_corlib (), "System", - "NotImplementedException"); - - if (msg) - ex->message = mono_string_new (mono_object_get_domain ((MonoObject*)ex), msg); + return mono_exception_from_name_msg (mono_get_corlib (), "System", "NotImplementedException", msg); +} - return ex; +/** + * mono_get_exception_not_supported: + * @msg: the message to pass to the user + * + * Returns: a new instance of the System.NotSupportedException + */ +MonoException * +mono_get_exception_not_supported (const char *msg) +{ + return mono_exception_from_name_msg (mono_get_corlib (), "System", "NotSupportedException", msg); } /** @@ -396,9 +400,10 @@ mono_get_exception_argument_null (const char *arg) ex = mono_exception_from_name ( mono_get_corlib (), "System", "ArgumentNullException"); - if (arg) - ((MonoArgumentException *)ex)->param_name = - mono_string_new (mono_object_get_domain ((MonoObject*)ex), arg); + if (arg) { + MonoArgumentException *argex = (MonoArgumentException *)ex; + MONO_OBJECT_SETREF (argex, param_name, mono_string_new (mono_object_get_domain ((MonoObject*)ex), arg)); + } return ex; } @@ -417,9 +422,10 @@ mono_get_exception_argument (const char *arg, const char *msg) ex = mono_exception_from_name_msg ( mono_get_corlib (), "System", "ArgumentException", msg); - if (arg) - ((MonoArgumentException *)ex)->param_name = - mono_string_new (mono_object_get_domain ((MonoObject*)ex), arg); + if (arg) { + MonoArgumentException *argex = (MonoArgumentException *)ex; + MONO_OBJECT_SETREF (argex, param_name, mono_string_new (mono_object_get_domain ((MonoObject*)ex), arg)); + } return ex; } @@ -438,9 +444,10 @@ mono_get_exception_argument_out_of_range (const char *arg) ex = mono_exception_from_name ( mono_get_corlib (), "System", "ArgumentOutOfRangeException"); - if (arg) - ((MonoArgumentException *)ex)->param_name = - mono_string_new (mono_object_get_domain ((MonoObject*)ex), arg); + if (arg) { + MonoArgumentException *argex = (MonoArgumentException *)ex; + MONO_OBJECT_SETREF (argex, param_name, mono_string_new (mono_object_get_domain ((MonoObject*)ex), arg)); + } return ex; }