hotspot/src/share/vm/classfile/verifier.cpp
changeset 9116 9bc44be338d6
parent 8676 9098d4e927e1
child 12932 16599c579430
child 12986 14b117407405
equal deleted inserted replaced
9115:5a28312aa393 9116:9bc44be338d6
  1669   } else if (tag.is_long()) {
  1669   } else if (tag.is_long()) {
  1670     current_frame->push_stack_2(
  1670     current_frame->push_stack_2(
  1671       VerificationType::long_type(),
  1671       VerificationType::long_type(),
  1672       VerificationType::long2_type(), CHECK_VERIFY(this));
  1672       VerificationType::long2_type(), CHECK_VERIFY(this));
  1673   } else if (tag.is_method_handle()) {
  1673   } else if (tag.is_method_handle()) {
  1674     Symbol* methodHandle_name = vmSymbols::java_lang_invoke_MethodHandle();
       
  1675     if (AllowTransitionalJSR292 && !Universe::is_bootstrapping())
       
  1676       methodHandle_name = SystemDictionaryHandles::MethodHandle_klass()->name();
       
  1677     current_frame->push_stack(
  1674     current_frame->push_stack(
  1678       VerificationType::reference_type(
  1675       VerificationType::reference_type(
  1679         methodHandle_name), CHECK_VERIFY(this));
  1676         vmSymbols::java_lang_invoke_MethodHandle()), CHECK_VERIFY(this));
  1680   } else if (tag.is_method_type()) {
  1677   } else if (tag.is_method_type()) {
  1681     Symbol* methodType_name = vmSymbols::java_lang_invoke_MethodType();
       
  1682     if (AllowTransitionalJSR292 && !Universe::is_bootstrapping())
       
  1683       methodType_name = SystemDictionaryHandles::MethodType_klass()->name();
       
  1684     current_frame->push_stack(
  1678     current_frame->push_stack(
  1685       VerificationType::reference_type(
  1679       VerificationType::reference_type(
  1686         methodType_name), CHECK_VERIFY(this));
  1680         vmSymbols::java_lang_invoke_MethodType()), CHECK_VERIFY(this));
  1687   } else {
  1681   } else {
  1688     verify_error(bci, "Invalid index in ldc");
  1682     verify_error(bci, "Invalid index in ldc");
  1689     return;
  1683     return;
  1690   }
  1684   }
  1691 }
  1685 }
  1948   u2 index = bcs->get_index_u2();
  1942   u2 index = bcs->get_index_u2();
  1949   Bytecodes::Code opcode = bcs->raw_code();
  1943   Bytecodes::Code opcode = bcs->raw_code();
  1950   unsigned int types = (opcode == Bytecodes::_invokeinterface
  1944   unsigned int types = (opcode == Bytecodes::_invokeinterface
  1951                                 ? 1 << JVM_CONSTANT_InterfaceMethodref
  1945                                 ? 1 << JVM_CONSTANT_InterfaceMethodref
  1952                       : opcode == Bytecodes::_invokedynamic
  1946                       : opcode == Bytecodes::_invokedynamic
  1953                                 ? ((AllowTransitionalJSR292 ? 1 << JVM_CONSTANT_NameAndType : 0)
  1947                                 ? 1 << JVM_CONSTANT_InvokeDynamic
  1954                                   |1 << JVM_CONSTANT_InvokeDynamic)
       
  1955                                 : 1 << JVM_CONSTANT_Methodref);
  1948                                 : 1 << JVM_CONSTANT_Methodref);
  1956   verify_cp_type(index, cp, types, CHECK_VERIFY(this));
  1949   verify_cp_type(index, cp, types, CHECK_VERIFY(this));
  1957 
  1950 
  1958   // Get method name and signature
  1951   // Get method name and signature
  1959   Symbol* method_name = cp->name_ref_at(index);
  1952   Symbol* method_name = cp->name_ref_at(index);