2008-01-30 Zoltan Varga <vargaz@gmail.com>
authorZoltan Varga <vargaz@gmail.com>
Wed, 30 Jan 2008 20:47:52 +0000 (20:47 -0000)
committerZoltan Varga <vargaz@gmail.com>
Wed, 30 Jan 2008 20:47:52 +0000 (20:47 -0000)
* exceptions-x86.c (mono_arch_find_jit_info): Fix stack unwinding when an
exception happens while compiling a virtual method.

svn path=/trunk/mono/; revision=94418

mono/mini/ChangeLog
mono/mini/exceptions-x86.c

index c6b707355b40ac349cf42eded7df2fc450414c43..3563d23866d40a8c9a0c0fe1152ebaaabaff369c 100644 (file)
@@ -1,3 +1,8 @@
+2008-01-30  Zoltan Varga  <vargaz@gmail.com>
+
+       * exceptions-x86.c (mono_arch_find_jit_info): Fix stack unwinding when an
+       exception happens while compiling a virtual method.
+
 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
 
        * mini-sparc.c (mono_arch_emit_epilog): Fix folding of negative return values.
index caa88e58e2347e5ba350125523c96a77f134d6e7..c69928c507174d226465a8467e01bd771ba1a195 100644 (file)
@@ -669,7 +669,8 @@ mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls, MonoJitInf
 
                        /* Pop arguments off the stack */
                        /* FIXME: Handle the delegate case too ((*lmf)->method == NULL) */
-                       if ((*lmf)->method) {
+                       /* FIXME: Handle the IMT/vtable case too */
+                       if ((*lmf)->method && (*lmf)->method != MONO_FAKE_IMT_METHOD && (*lmf)->method != MONO_FAKE_VTABLE_METHOD) {
                                MonoMethod *method = (*lmf)->method;
                                MonoJitArgumentInfo *arg_info = g_newa (MonoJitArgumentInfo, mono_method_signature (method)->param_count + 1);