diff options
Diffstat (limited to 'libjava/exception.cc')
-rw-r--r-- | libjava/exception.cc | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/libjava/exception.cc b/libjava/exception.cc index 16bbb9f..7522361 100644 --- a/libjava/exception.cc +++ b/libjava/exception.cc @@ -120,7 +120,7 @@ static const unsigned char * parse_lsda_header (_Unwind_Context *context, const unsigned char *p, lsda_header_info *info) { - _Unwind_Ptr tmp; + _Unwind_Word tmp; unsigned char lpstart_encoding; info->Start = (context ? _Unwind_GetRegionStart (context) : 0); @@ -236,7 +236,7 @@ PERSONALITY_FUNCTION (int version, return _URC_CONTINUE_UNWIND; else { - _Unwind_Ptr cs_lp, cs_action; + _Unwind_Word cs_lp, cs_action; do { p = read_uleb128 (p, &cs_lp); @@ -255,7 +255,8 @@ PERSONALITY_FUNCTION (int version, // Search the call-site table for the action associated with this IP. while (p < info.action_table) { - _Unwind_Ptr cs_start, cs_len, cs_lp, cs_action; + _Unwind_Ptr cs_start, cs_len, cs_lp; + _Unwind_Word cs_action; // Note that all call-site encodings are "absolute" displacements. p = read_encoded_value (0, info.call_site_encoding, p, &cs_start); @@ -301,15 +302,13 @@ PERSONALITY_FUNCTION (int version, else { // Otherwise we have a catch handler. - signed long ar_filter, ar_disp; + _Unwind_Sword ar_filter, ar_disp; while (1) { - _Unwind_Ptr tmp; - p = action_record; - p = read_sleb128 (p, &tmp); ar_filter = tmp; - read_sleb128 (p, &tmp); ar_disp = tmp; + p = read_sleb128 (p, &ar_filter); + read_sleb128 (p, &ar_disp); if (ar_filter == 0) { |