src/share/vm/classfile/verifier.cpp

changeset 8703
02a3d0dcbedd
parent 8676
b4b7e6bb414d
child 8716
619700f41f8e
equal deleted inserted replaced
8702:c7b69bdda4d7 8703:02a3d0dcbedd
1812 // See if current stack map can be assigned to the frame in table. 1812 // See if current stack map can be assigned to the frame in table.
1813 // current_frame is the stackmap frame got from the last instruction. 1813 // current_frame is the stackmap frame got from the last instruction.
1814 // If matched, current_frame will be updated by this method. 1814 // If matched, current_frame will be updated by this method.
1815 bool matches = stackmap_table->match_stackmap( 1815 bool matches = stackmap_table->match_stackmap(
1816 current_frame, this_offset, stackmap_index, 1816 current_frame, this_offset, stackmap_index,
1817 !no_control_flow, true, false, &ctx, CHECK_VERIFY_(this, 0)); 1817 !no_control_flow, true, &ctx, CHECK_VERIFY_(this, 0));
1818 if (!matches) { 1818 if (!matches) {
1819 // report type error 1819 // report type error
1820 verify_error(ctx, "Instruction type does not match stack map"); 1820 verify_error(ctx, "Instruction type does not match stack map");
1821 return 0; 1821 return 0;
1822 } 1822 }
1859 VerificationType::reference_type(vmSymbols::java_lang_Throwable()); 1859 VerificationType::reference_type(vmSymbols::java_lang_Throwable());
1860 new_frame->push_stack(throwable, CHECK_VERIFY(this)); 1860 new_frame->push_stack(throwable, CHECK_VERIFY(this));
1861 } 1861 }
1862 ErrorContext ctx; 1862 ErrorContext ctx;
1863 bool matches = stackmap_table->match_stackmap( 1863 bool matches = stackmap_table->match_stackmap(
1864 new_frame, handler_pc, true, false, true, &ctx, CHECK_VERIFY(this)); 1864 new_frame, handler_pc, true, false, &ctx, CHECK_VERIFY(this));
1865 if (!matches) { 1865 if (!matches) {
1866 verify_error(ctx, "Stack map does not match the one at " 1866 verify_error(ctx, "Stack map does not match the one at "
1867 "exception handler %d", handler_pc); 1867 "exception handler %d", handler_pc);
1868 return; 1868 return;
1869 } 1869 }

mercurial