diff options
-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 |