Merge pull request #901 from Blewzman/FixAggregateExceptionGetBaseException
[mono.git] / mono / mini / exceptions-s390x.c
index afcef988f78aaa7c770c19dd05c65ae644c5a0e9..38c4a5b987a41747ecbe637cb7c217b1372029c6 100644 (file)
@@ -69,8 +69,7 @@
 /*------------------------------------------------------------------*/
 
 gboolean mono_arch_handle_exception (void     *ctx,
-                                    gpointer obj, 
-                                    gboolean test_only);
+                                    gpointer obj);
 
 /*========================= End of Prototypes ======================*/
 
@@ -214,7 +213,7 @@ mono_arch_get_call_filter (MonoTrampInfo **info, gboolean aot)
        g_assert ((code - start) < SZ_THROW); 
 
        if (info)
-               *info = mono_tramp_info_create (g_strdup_printf("call_filter"),
+               *info = mono_tramp_info_create ("call_filter",
                                                start, code - start, ji,
                                                unwind_ops);
 
@@ -238,11 +237,7 @@ throw_exception (MonoObject *exc, unsigned long ip, unsigned long sp,
 {
        MonoContext ctx;
        int iReg;
-       static void (*restore_context) (MonoContext *);
 
-       if (!restore_context)
-               restore_context = mono_get_restore_context();
-       
        memset(&ctx, 0, sizeof(ctx));
 
        setup_context(&ctx);
@@ -267,8 +262,8 @@ throw_exception (MonoObject *exc, unsigned long ip, unsigned long sp,
                        mono_ex->stack_trace = NULL;
        }
 //     mono_arch_handle_exception (&ctx, exc, FALSE);
-       mono_handle_exception (&ctx, exc, (gpointer) ip, FALSE);
-       restore_context(&ctx);
+       mono_handle_exception (&ctx, exc);
+       mono_restore_context(&ctx);
 
        g_assert_not_reached ();
 }
@@ -365,9 +360,9 @@ mono_arch_get_throw_exception_generic (int size, MonoTrampInfo **info,
        g_assert ((code - start) < size);
 
        if (info)
-               *info = mono_tramp_info_create (g_strdup_printf(corlib ? "throw_corlib_exception" 
+               *info = mono_tramp_info_create (corlib ? "throw_corlib_exception" 
                                                                       : (rethrow ? "rethrow_exception" 
-                                                                      : "throw_exception"))
+                                                                      : "throw_exception"), 
                                                start, code - start, ji, unwind_ops);
 
        return start;
@@ -477,10 +472,7 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
 
                frame->type = FRAME_TYPE_MANAGED;
 
-               if (ji->from_aot)
-                       unwind_info = mono_aot_get_unwind_info(ji, &unwind_info_len);
-               else
-                       unwind_info = mono_get_cached_unwind_info(ji->used_regs, &unwind_info_len);
+               unwind_info = mono_jinfo_get_unwind_info (ji, &unwind_info_len);
 
                if (*lmf && ((*lmf) != jit_tls->first_lmf) && 
                    (MONO_CONTEXT_GET_SP (ctx) >= (gpointer)(*lmf)->ebp)) {
@@ -539,15 +531,13 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
 /*                                                                  */
 /* Parameters   - ctx       - Saved processor state                 */
 /*                obj       - The exception object                  */
-/*                test_only - Only test if the exception is caught, */
-/*                            but don't call handlers               */
 /*                                                                  */
 /*------------------------------------------------------------------*/
 
 gboolean
-mono_arch_handle_exception (void *uc, gpointer obj, gboolean test_only)
+mono_arch_handle_exception (void *uc, gpointer obj)
 {
-       return mono_handle_exception (uc, obj, mono_arch_ip_from_context(uc), test_only);
+       return mono_handle_exception (uc, obj);
 }
 
 /*========================= End of Function ========================*/