X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fexceptions-sparc.c;h=77510a7f934de0d832dd20fca39c687f19c4d1de;hb=9e167696e7709b66bc42e7a822046665f7d29660;hp=b3b5633597644d39ff345274d0fc4f2749b21d66;hpb=6fc86ee499b93937a52d685a3ca01e5bbecbd0ae;p=mono.git diff --git a/mono/mini/exceptions-sparc.c b/mono/mini/exceptions-sparc.c index b3b56335976..77510a7f934 100644 --- a/mono/mini/exceptions-sparc.c +++ b/mono/mini/exceptions-sparc.c @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include "mini.h" @@ -166,6 +166,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 +179,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);