diff options
author | Jason Merrill <jason@redhat.com> | 2001-08-31 08:27:32 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2001-08-31 08:27:32 -0400 |
commit | 6c8d43e78d57068e37ba19d7e5da8c447eca8daa (patch) | |
tree | 4b357aba3522c2999c4f6fde6654832e7f8590be | |
parent | ea57133ffedb056f6cfbd46bb2768b70811b12b2 (diff) | |
download | gcc-6c8d43e78d57068e37ba19d7e5da8c447eca8daa.tar.gz |
exception.cc (PERSONALITY_FUNCTION): Simplify leb128 handling.
* exception.cc (PERSONALITY_FUNCTION): Simplify
leb128 handling.
From-SVN: r45317
-rw-r--r-- | libjava/ChangeLog | 5 | ||||
-rw-r--r-- | libjava/exception.cc | 15 | ||||
-rw-r--r-- | libstdc++-v3/libsupc++/eh_personality.cc | 5 |
3 files changed, 15 insertions, 10 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index edfb3418d39..c7eed00c78f 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2001-08-31 Jason Merrill <jason_merrill@redhat.com> + + * exception.cc (PERSONALITY_FUNCTION): Simplify + leb128 handling. + 2001-08-31 Tom Tromey <tromey@redhat.com> * java/io/ByteArrayInputStream.java: Merged with Classpath. diff --git a/libjava/exception.cc b/libjava/exception.cc index 16bbb9fa114..752236102af 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 d070ced8101..e735ac860dd 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); |