verify.cc (_Jv_BytecodeVerifier::branch_prepass): Uses two operand bytes, not one.
authorTom Tromey <tromey@redhat.com>
Tue, 20 Nov 2001 05:16:17 +0000 (05:16 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Tue, 20 Nov 2001 05:16:17 +0000 (05:16 +0000)
* 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.

From-SVN: r47202

libjava/ChangeLog
libjava/verify.cc

index 01b089abc64da4d701816e4c8fff9e7bfbc1494d..29413b881c691be9ee65c0a06b15f0f3d8da450a 100644 (file)
@@ -1,5 +1,14 @@
 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.
 
index b9571c4b8708a09d50ace5a0f7cb5070e2535858..7226a93ca12940aafd16f073f6c0f4ff7d9a0d81 100644 (file)
@@ -1037,13 +1037,13 @@ private:
   {
     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);
@@ -1114,7 +1114,7 @@ private:
        // 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);
       }
 
@@ -1139,7 +1139,7 @@ private:
     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
@@ -1344,7 +1344,6 @@ private:
          case op_lneg:
          case op_fneg:
          case op_dneg:
-         case op_iinc:
          case op_i2l:
          case op_i2f:
          case op_i2d:
@@ -1371,6 +1370,7 @@ private:
          case op_areturn:
          case op_return:
          case op_athrow:
+         case op_arraylength:
            break;
 
          case op_bipush:
@@ -1385,12 +1385,12 @@ private:
          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: