Add support for an additional TType encoding.
authorZoltan Varga <vargaz@gmail.com>
Tue, 14 Dec 2010 20:32:04 +0000 (21:32 +0100)
committerZoltan Varga <vargaz@gmail.com>
Tue, 14 Dec 2010 20:34:57 +0000 (21:34 +0100)
mono/mini/unwind.c

index d75ae49ffabdb40c50ccc3f557ebef514ba87ae4..2f1302065a8a0edddf60fa060d83f752318c7808 100644 (file)
@@ -770,6 +770,10 @@ decode_lsda (guint8 *lsda, guint8 *code, MonoJitExceptionInfo **ex_info, guint32
                                gint32 offset = *(gint32*)ttype_entry;
                                guint8 *stub = ttype_entry + offset;
                                tinfo = *(gpointer*)stub;
+                       } else if (ttype_encoding == (DW_EH_PE_pcrel | DW_EH_PE_sdata4)) {
+                               guint8 *ttype_entry = (ttype - (type_offset * 4));
+                               gint32 offset = *(gint32*)ttype_entry;
+                               tinfo = ttype_entry + offset;
                        } else {
                                g_assert_not_reached ();
                        }