X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=mono%2Fmini%2Fexceptions-s390x.c;h=546714496602e133a59ff8306a6a9a5f7fa3d3a7;hb=4e4851142302b80c66174d23dffb42a87cb7948c;hp=a25373c0ddd8979cb449a4e8d295e0c2dd76d3d2;hpb=88a687f3a23ed96834468dd06911c970a42115f2;p=mono.git diff --git a/mono/mini/exceptions-s390x.c b/mono/mini/exceptions-s390x.c index a25373c0ddd..54671449660 100644 --- a/mono/mini/exceptions-s390x.c +++ b/mono/mini/exceptions-s390x.c @@ -718,13 +718,7 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls, sframe = (MonoS390StackFrame *) sframe->prev; MONO_CONTEXT_SET_IP (new_ctx, sframe->return_address); memcpy (&new_ctx->uc_mcontext.gregs[6], sframe->regs, (8*sizeof(gint32))); - *res = *ji; - return res; -#ifdef MONO_USE_EXC_TABLES - } else if ((ji = s390_unwind_native_frame (domain, jit_tls, ctx, new_ctx, *lmf, trace))) { - *res = *ji; - return res; -#endif + return ji; } else if (*lmf) { *new_ctx = *ctx; @@ -736,7 +730,6 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls, *trace = g_strdup_printf ("in (unmanaged) %s", mono_method_full_name ((*lmf)->method, TRUE)); if ((ji = mono_jit_info_table_find (domain, (gpointer)(*lmf)->eip))) { - *res = *ji; } else { memset (res, 0, sizeof (MonoJitInfo)); res->method = (*lmf)->method; @@ -753,8 +746,7 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls, MONO_CONTEXT_SET_IP (new_ctx, (*lmf)->eip); *lmf = (*lmf)->previous_lmf; - return res; - + return ji ? ji : res; } return NULL; @@ -901,6 +893,8 @@ ves_icall_get_frame_info (gint32 skip, MonoBoolean need_file_info, /* skip all wrappers ??*/ if (ji->method->wrapper_type == MONO_WRAPPER_RUNTIME_INVOKE || + ji->method->wrapper_type == MONO_WRAPPER_XDOMAIN_INVOKE || + ji->method->wrapper_type == MONO_WRAPPER_XDOMAIN_DISPATCH || ji->method->wrapper_type == MONO_WRAPPER_REMOTING_INVOKE_WITH_CHECK || ji->method->wrapper_type == MONO_WRAPPER_REMOTING_INVOKE) continue;