hotspot/src/share/vm/classfile/verifier.cpp
changeset 8676 9098d4e927e1
parent 8107 78e5bd944384
child 9116 9bc44be338d6
equal deleted inserted replaced
8675:e9fef2a9bef7 8676:9098d4e927e1
     1 /*
     1 /*
     2  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
  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();
  1674     current_frame->push_stack(
  1677     current_frame->push_stack(
  1675       VerificationType::reference_type(
  1678       VerificationType::reference_type(
  1676         vmSymbols::java_dyn_MethodHandle()), CHECK_VERIFY(this));
  1679         methodHandle_name), CHECK_VERIFY(this));
  1677   } else if (tag.is_method_type()) {
  1680   } 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();
  1678     current_frame->push_stack(
  1684     current_frame->push_stack(
  1679       VerificationType::reference_type(
  1685       VerificationType::reference_type(
  1680         vmSymbols::java_dyn_MethodType()), CHECK_VERIFY(this));
  1686         methodType_name), CHECK_VERIFY(this));
  1681   } else {
  1687   } else {
  1682     verify_error(bci, "Invalid index in ldc");
  1688     verify_error(bci, "Invalid index in ldc");
  1683     return;
  1689     return;
  1684   }
  1690   }
  1685 }
  1691 }