===================================================================
@@ -135,6 +135,7 @@
{
_Unwind_Ptr Start;
_Unwind_Ptr LPStart;
+ _Unwind_Ptr ttype_base;
const unsigned char *TType;
const unsigned char *action_table;
unsigned char ttype_encoding;
@@ -184,7 +185,7 @@
_Unwind_Ptr ptr;
ptr = (_Unwind_Ptr) (info->TType - (i * 4));
- ptr = _Unwind_decode_target2(ptr);
+ ptr = _Unwind_decode_typeinfo_ptr (info->ttype_base, (_Unwind_Word) ptr);
return reinterpret_cast<void **>(ptr);
}
@@ -325,6 +326,7 @@
// Parse the LSDA header.
p = parse_lsda_header (context, language_specific_data, &info);
+ info.ttype_base = base_of_encoded_value (info.ttype_encoding, context);
#ifdef HAVE_GETIPINFO
ip = _Unwind_GetIPInfo (context, &ip_before_insn);
#else