2001-11-19 Tom Tromey <tromey@redhat.com>
+ * verify.cc (_Jv_BytecodeVerifier::branch_prepass) [op_iinc]:
+ Uses two operand bytes, not one.
+ [op_arraylength]: Has no operands in bytecode.
+ (_Jv_BytecodeVerifier::push_jump): Fixed call to
+ check_no_uninitialized_objects.
+ (_Jv_BytecodeVerifier::push_exception_jump): Likewise.
+ (_Jv_BytecodeVerifier::handle_ret_insn): Likewise.
+ (_Jv_BytecodeVerifier::handle_jsr_insn): Likewise.
+
* verify.cc (_Jv_BytecodeVerifier::require_array_type): Special
case for boolean arrays.
{
int npc = compute_jump (offset);
if (npc < PC)
- current_state->check_no_uninitialized_objects (current_method->max_stack);
+ current_state->check_no_uninitialized_objects (current_method->max_locals);
push_jump_merge (npc, current_state);
}
void push_exception_jump (type t, int pc)
{
- current_state->check_no_uninitialized_objects (current_method->max_stack,
+ current_state->check_no_uninitialized_objects (current_method->max_locals,
true);
state s (current_state, current_method->max_stack,
current_method->max_locals);
// in the enclosing context.
current_state->subroutine = get_subroutine (subr->pc);
if (subr->pc < PC)
- current_state->check_no_uninitialized_objects (current_method->max_stack);
+ current_state->check_no_uninitialized_objects (current_method->max_locals);
push_jump_merge (subr->pc, current_state, true);
}
int npc = compute_jump (offset);
if (npc < PC)
- current_state->check_no_uninitialized_objects (current_method->max_stack);
+ current_state->check_no_uninitialized_objects (current_method->max_locals);
check_nonrecursive_call (current_state->subroutine, npc);
// Temporarily modify the current state so that it looks like we are
case op_lneg:
case op_fneg:
case op_dneg:
- case op_iinc:
case op_i2l:
case op_i2f:
case op_i2d:
case op_areturn:
case op_return:
case op_athrow:
+ case op_arraylength:
break;
case op_bipush:
case op_fstore:
case op_dstore:
case op_astore:
- case op_arraylength:
case op_ret:
case op_newarray:
get_byte ();
break;
+ case op_iinc:
case op_sipush:
case op_ldc_w:
case op_ldc2_w: