summaryrefslogtreecommitdiff
path: root/libjava/exception.cc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2001-08-31 08:27:32 -0400
committerJason Merrill <jason@gcc.gnu.org>2001-08-31 08:27:32 -0400
commit6c8d43e78d57068e37ba19d7e5da8c447eca8daa (patch)
tree4b357aba3522c2999c4f6fde6654832e7f8590be /libjava/exception.cc
parentea57133ffedb056f6cfbd46bb2768b70811b12b2 (diff)
downloadgcc-6c8d43e78d57068e37ba19d7e5da8c447eca8daa.tar.gz
exception.cc (PERSONALITY_FUNCTION): Simplify leb128 handling.
* exception.cc (PERSONALITY_FUNCTION): Simplify leb128 handling. From-SVN: r45317
Diffstat (limited to 'libjava/exception.cc')
-rw-r--r--libjava/exception.cc15
1 files changed, 7 insertions, 8 deletions
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)
{