From: Aleksey Kliger (λgeek) Date: Sat, 4 Jun 2016 09:02:48 +0000 (-0400) Subject: [mini] Set pending MonoError in mono_vcall_trampoline (#3107) X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=mono.git;a=commitdiff_plain;h=42975530c325b0ba0334a65756b7f7420dcada87 [mini] Set pending MonoError in mono_vcall_trampoline (#3107) --- diff --git a/mono/mini/mini-trampolines.c b/mono/mini/mini-trampolines.c index 12e0fd97758..68b5a8b0a47 100644 --- a/mono/mini/mini-trampolines.c +++ b/mono/mini/mini-trampolines.c @@ -876,7 +876,8 @@ mono_vcall_trampoline (mgreg_t *regs, guint8 *code, int slot, guint8 *tramp) /* Avoid loading metadata or creating a generic vtable if possible */ addr = mono_aot_get_method_from_vt_slot (mono_domain_get (), vt, slot, &error); - mono_error_raise_exception (&error); /* FIXME don't raise here */ + if (!is_ok (&error)) + goto leave; if (addr && !vt->klass->valuetype) { if (mono_domain_owns_vtable_slot (mono_domain_get (), vtable_slot)) *vtable_slot = addr; @@ -906,6 +907,7 @@ mono_vcall_trampoline (mgreg_t *regs, guint8 *code, int slot, guint8 *tramp) } res = common_call_trampoline (regs, code, m, vt, vtable_slot, &error); +leave: if (!mono_error_ok (&error)) { mono_error_set_pending_exception (&error); return NULL;