From: Jason Merrill Date: Fri, 31 Aug 2001 12:27:32 +0000 (-0400) Subject: exception.cc (PERSONALITY_FUNCTION): Simplify leb128 handling. X-Git-Tag: prereleases/libstdc++-3.0.95~2324 X-Git-Url: https://gcc.gnu.org/git/?a=commitdiff_plain;h=6c8d43e78d57068e37ba19d7e5da8c447eca8daa;p=gcc.git exception.cc (PERSONALITY_FUNCTION): Simplify leb128 handling. * exception.cc (PERSONALITY_FUNCTION): Simplify leb128 handling. From-SVN: r45317 --- diff --git a/libjava/ChangeLog b/libjava/ChangeLog index edfb3418d397..c7eed00c78f2 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2001-08-31 Jason Merrill + + * exception.cc (PERSONALITY_FUNCTION): Simplify + leb128 handling. + 2001-08-31 Tom Tromey * java/io/ByteArrayInputStream.java: Merged with Classpath. diff --git a/libjava/exception.cc b/libjava/exception.cc index 16bbb9fa114b..752236102af3 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) { diff --git a/libstdc++-v3/libsupc++/eh_personality.cc b/libstdc++-v3/libsupc++/eh_personality.cc index d070ced81011..e735ac860ddb 100644 --- a/libstdc++-v3/libsupc++/eh_personality.cc +++ b/libstdc++-v3/libsupc++/eh_personality.cc @@ -197,7 +197,7 @@ PERSONALITY_FUNCTION (int version, } else { - _Unwind_Ptr cs_lp, cs_action; + _Unwind_Word cs_lp, cs_action; do { p = read_uleb128 (p, &cs_lp); @@ -216,7 +216,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);