< prev index next >

src/hotspot/share/classfile/verifier.cpp

Print this page
rev 50967 : 8206977: Minor improvements of runtime code.


 702     stackmap_index = verify_stackmap_table(
 703       stackmap_index, bci, &current_frame, &stackmap_table,
 704       no_control_flow, CHECK_VERIFY(this));
 705 
 706 
 707     bool this_uninit = false;  // Set to true when invokespecial <init> initialized 'this'
 708     bool verified_exc_handlers = false;
 709 
 710     // Merge with the next instruction
 711     {
 712       u2 index;
 713       int target;
 714       VerificationType type, type2;
 715       VerificationType atype;
 716 
 717       LogTarget(Info, verification) lt;
 718       if (lt.is_enabled()) {
 719         ResourceMark rm(THREAD);
 720         LogStream ls(lt);
 721         current_frame.print_on(&ls);
 722         lt.print("offset = %d,  opcode = %s", bci, Bytecodes::name(opcode));

 723       }
 724 
 725       // Make sure wide instruction is in correct format
 726       if (bcs.is_wide()) {
 727         if (opcode != Bytecodes::_iinc   && opcode != Bytecodes::_iload  &&
 728             opcode != Bytecodes::_aload  && opcode != Bytecodes::_lload  &&
 729             opcode != Bytecodes::_istore && opcode != Bytecodes::_astore &&
 730             opcode != Bytecodes::_lstore && opcode != Bytecodes::_fload  &&
 731             opcode != Bytecodes::_dload  && opcode != Bytecodes::_fstore &&
 732             opcode != Bytecodes::_dstore) {
 733           /* Unreachable?  RawBytecodeStream's raw_next() returns 'illegal'
 734            * if we encounter a wide instruction that modifies an invalid
 735            * opcode (not one of the ones listed above) */
 736           verify_error(ErrorContext::bad_code(bci), "Bad wide instruction");
 737           return;
 738         }
 739       }
 740 
 741       // Look for possible jump target in exception handlers and see if it
 742       // matches current_frame.  Do this check here for astore*, dstore*,




 702     stackmap_index = verify_stackmap_table(
 703       stackmap_index, bci, &current_frame, &stackmap_table,
 704       no_control_flow, CHECK_VERIFY(this));
 705 
 706 
 707     bool this_uninit = false;  // Set to true when invokespecial <init> initialized 'this'
 708     bool verified_exc_handlers = false;
 709 
 710     // Merge with the next instruction
 711     {
 712       u2 index;
 713       int target;
 714       VerificationType type, type2;
 715       VerificationType atype;
 716 
 717       LogTarget(Info, verification) lt;
 718       if (lt.is_enabled()) {
 719         ResourceMark rm(THREAD);
 720         LogStream ls(lt);
 721         current_frame.print_on(&ls);
 722         lt.print("offset = %d,  opcode = %s", bci,
 723                  opcode == Bytecodes::_illegal ? "illegal" : Bytecodes::name(opcode));
 724       }
 725 
 726       // Make sure wide instruction is in correct format
 727       if (bcs.is_wide()) {
 728         if (opcode != Bytecodes::_iinc   && opcode != Bytecodes::_iload  &&
 729             opcode != Bytecodes::_aload  && opcode != Bytecodes::_lload  &&
 730             opcode != Bytecodes::_istore && opcode != Bytecodes::_astore &&
 731             opcode != Bytecodes::_lstore && opcode != Bytecodes::_fload  &&
 732             opcode != Bytecodes::_dload  && opcode != Bytecodes::_fstore &&
 733             opcode != Bytecodes::_dstore) {
 734           /* Unreachable?  RawBytecodeStream's raw_next() returns 'illegal'
 735            * if we encounter a wide instruction that modifies an invalid
 736            * opcode (not one of the ones listed above) */
 737           verify_error(ErrorContext::bad_code(bci), "Bad wide instruction");
 738           return;
 739         }
 740       }
 741 
 742       // Look for possible jump target in exception handlers and see if it
 743       // matches current_frame.  Do this check here for astore*, dstore*,


< prev index next >