X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fexceptions-sparc.c;h=f7010b13f88e4873928d655ee63ddb576e9a7b28;hb=118a5c70ed6deb963573f8f69e4c910efe952c87;hp=b3b5633597644d39ff345274d0fc4f2749b21d66;hpb=bd52e33266aee6ffbddf313a99db7fffc497a095;p=mono.git diff --git a/mono/mini/exceptions-sparc.c b/mono/mini/exceptions-sparc.c index b3b56335976..f7010b13f88 100644 --- a/mono/mini/exceptions-sparc.c +++ b/mono/mini/exceptions-sparc.c @@ -1,5 +1,6 @@ -/* - * exceptions-sparc.c: exception support for sparc +/** + * \file + * exception support for sparc * * Authors: * Mark Crichton (crichton@gimp.org) @@ -21,7 +22,7 @@ #include #include #include -#include +#include #include #include "mini.h" @@ -166,6 +167,7 @@ mono_arch_get_call_filter (MonoTrampInfo **info, gboolean aot) static void throw_exception (MonoObject *exc, gpointer sp, gpointer ip, gboolean rethrow) { + MonoError error; MonoContext ctx; static void (*restore_context) (MonoContext *); gpointer *window; @@ -178,13 +180,14 @@ throw_exception (MonoObject *exc, gpointer sp, gpointer ip, gboolean rethrow) ctx.ip = ip; ctx.fp = (gpointer*)(MONO_SPARC_WINDOW_ADDR (sp) [sparc_i6 - 16]); - if (mono_object_isinst (exc, mono_defaults.exception_class)) { + if (mono_object_isinst_checked (exc, mono_defaults.exception_class, &error)) { MonoException *mono_ex = (MonoException*)exc; if (!rethrow) { mono_ex->stack_trace = NULL; mono_ex->trace_ips = NULL; } } + mono_error_assert_ok (&error); mono_handle_exception (&ctx, exc); restore_context (&ctx); @@ -218,8 +221,7 @@ get_throw_exception (gboolean rethrow) /** * mono_arch_get_throw_exception: - * - * Returns a function pointer which can be used to raise exceptions. + * \returns a function pointer which can be used to raise exceptions. * The returned function has the following * signature: void (*func) (MonoException *exc); */ @@ -265,8 +267,7 @@ mono_arch_get_rethrow_exception (MonoTrampInfo **info, gboolean aot) /** * mono_arch_get_throw_corlib_exception: - * - * Returns a function pointer which can be used to raise + * \returns a function pointer which can be used to raise * corlib exceptions. The returned function has the following * signature: void (*func) (guint32 ex_token, guint32 offset); * Here, offset is the offset which needs to be substracted from the caller IP