diff options
author | Tom Tromey <tromey@redhat.com> | 2002-06-24 20:38:47 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2002-06-24 20:38:47 +0000 |
commit | fdae83abe7a88e1f08ec25d3f4eb5eb21ec342bf (patch) | |
tree | e59ad5d049989b731a9627c3a574a3d26f58284f /libjava/verify.cc | |
parent | 7691fc06fee5ab69163222e1c584aed029273152 (diff) | |
download | gcc-fdae83abe7a88e1f08ec25d3f4eb5eb21ec342bf.zip gcc-fdae83abe7a88e1f08ec25d3f4eb5eb21ec342bf.tar.gz gcc-fdae83abe7a88e1f08ec25d3f4eb5eb21ec342bf.tar.bz2 |
verify.cc (branch_prepass): Updated for change to exception handler type.
* verify.cc (branch_prepass): Updated for change to exception
handler type.
(verify_instructions_0): Likewise.
* defineclass.cc (handleCodeAttribute): Initialize `prepared'.
(handleExceptionTableEntry): Updated for change to exception
handler type.
* java/lang/Class.h (Class): Removed _Jv_InterpMethodInvocation.
* include/java-interp.h (_Jv_InterpMethodInvocation): Removed.
(union _Jv_InterpPC): New.
(class _Jv_InterpException): Changed types to _Jv_InterpPC.
(class _Jv_InterpMethod): Added new `prepared' field.
(class _Jv_InterpMethod): Added `compile' method. Removed
`continue1' and `find_exception'. Changed arguments to `run'.
* interpret.cc (union insn_slot): New.
(find_exception): Removed.
(run_normal): Removed most logic.
(run_synch_object): Likewise; also, use JvSynchronize.
(run_synch_class): Likewise.
(run): Removed.
(continue1): Renamed as `run'. Compile bytecode if required.
Add new code to allow refinement of direct-threaded code at
runtime. Handle exceptions.
(SAVE_PC): Removed.
(compile): New method.
(SET_ONE, SET_INSN, SET_INT, SET_DATUM): New defines.
(NULLARRAYCHECK): Don't use SAVE_PC.
(pc_t): New typedef.
(TAKE_GOTO, GET1S, GET1U, GET2U, AVAL1U, AVAL2U, AVAL2UP,
SKIP_GOTO, GOTO_VAL, PCVAL, AMPAMP): New macros.
From-SVN: r54968
Diffstat (limited to 'libjava/verify.cc')
-rw-r--r-- | libjava/verify.cc | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/libjava/verify.cc b/libjava/verify.cc index 4054819..29f0f32 100644 --- a/libjava/verify.cc +++ b/libjava/verify.cc @@ -1882,18 +1882,18 @@ private: // Verify exception handlers. for (int i = 0; i < current_method->exc_count; ++i) { - if (! (flags[exception[i].handler_pc] & FLAG_INSN_START)) + if (! (flags[exception[i].handler_pc.i] & FLAG_INSN_START)) verify_fail ("exception handler not at instruction start", - exception[i].handler_pc); - if (! (flags[exception[i].start_pc] & FLAG_INSN_START)) + exception[i].handler_pc.i); + if (! (flags[exception[i].start_pc.i] & FLAG_INSN_START)) verify_fail ("exception start not at instruction start", - exception[i].start_pc); - if (exception[i].end_pc != current_method->code_length - && ! (flags[exception[i].end_pc] & FLAG_INSN_START)) + exception[i].start_pc.i); + if (exception[i].end_pc.i != current_method->code_length + && ! (flags[exception[i].end_pc.i] & FLAG_INSN_START)) verify_fail ("exception end not at instruction start", - exception[i].end_pc); + exception[i].end_pc.i); - flags[exception[i].handler_pc] |= FLAG_BRANCH_TARGET; + flags[exception[i].handler_pc.i] |= FLAG_BRANCH_TARGET; } } @@ -2186,12 +2186,12 @@ private: // through them all. for (int i = 0; i < current_method->exc_count; ++i) { - if (PC >= exception[i].start_pc && PC < exception[i].end_pc) + if (PC >= exception[i].start_pc.i && PC < exception[i].end_pc.i) { type handler (&java::lang::Throwable::class$); - if (exception[i].handler_type != 0) - handler = check_class_constant (exception[i].handler_type); - push_exception_jump (handler, exception[i].handler_pc); + if (exception[i].handler_type.i != 0) + handler = check_class_constant (exception[i].handler_type.i); + push_exception_jump (handler, exception[i].handler_pc.i); } } |