diff options
author | Andi McClure <andi.mcclure@xamarin.com> | 2016-09-07 17:28:43 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-07 17:28:43 +0300 |
commit | dea21552509fe421f20e43366a997bb8653637b1 (patch) | |
tree | 3cd97f4bcca4bfb5c7f310272e6d5690e5e4ecd9 | |
parent | 51a3c93f67949bb1c277b9cb33a48c220bf1307f (diff) | |
parent | 24f744c3f6ec5c7e96d3f63d5a2eb5b1552a7239 (diff) |
Merge pull request #3527 from xmcclure/cherrypick-monoerror-fixmono-4.6.0.243cycle8-beta4
Cherrypick mono_jit_runtime_invoke fix
-rw-r--r-- | mono/mini/mini-runtime.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/mono/mini/mini-runtime.c b/mono/mini/mini-runtime.c index c2c641f9803..c4ae82e0cbc 100644 --- a/mono/mini/mini-runtime.c +++ b/mono/mini/mini-runtime.c @@ -2521,11 +2521,13 @@ mono_jit_runtime_invoke (MonoMethod *method, void *obj, void **params, MonoObjec mono_arch_start_dyn_call (info->dyn_call_info, (gpointer**)args, retval, buf, sizeof (buf)); dyn_runtime_invoke (buf, exc, info->compiled_method); - if (catchExcInMonoError && *exc != NULL) - mono_error_set_exception_instance (error, (MonoException*) *exc); - mono_arch_finish_dyn_call (info->dyn_call_info, buf); + if (catchExcInMonoError && *exc != NULL) { + mono_error_set_exception_instance (error, (MonoException*) *exc); + return NULL; + } + if (info->ret_box_class) return mono_value_box_checked (domain, info->ret_box_class, retval, error); else |