src/hotspot/share/classfile/verificationType.cpp
changeset 58722 cba8afa5cfed
parent 58537 30a9612a657d
child 58760 1f7f707c1aa9
equal deleted inserted replaced
58720:ae0af9fb3dbb 58722:cba8afa5cfed
   120 
   120 
   121 VerificationType VerificationType::get_component(ClassVerifier *context, TRAPS) const {
   121 VerificationType VerificationType::get_component(ClassVerifier *context, TRAPS) const {
   122   assert(is_array() && name()->utf8_length() >= 2, "Must be a valid array");
   122   assert(is_array() && name()->utf8_length() >= 2, "Must be a valid array");
   123   Symbol* component;
   123   Symbol* component;
   124   switch (name()->char_at(1)) {
   124   switch (name()->char_at(1)) {
   125     case 'Z': return VerificationType(Boolean);
   125     case JVM_SIGNATURE_BOOLEAN: return VerificationType(Boolean);
   126     case 'B': return VerificationType(Byte);
   126     case JVM_SIGNATURE_BYTE:    return VerificationType(Byte);
   127     case 'C': return VerificationType(Char);
   127     case JVM_SIGNATURE_CHAR:    return VerificationType(Char);
   128     case 'S': return VerificationType(Short);
   128     case JVM_SIGNATURE_SHORT:   return VerificationType(Short);
   129     case 'I': return VerificationType(Integer);
   129     case JVM_SIGNATURE_INT:     return VerificationType(Integer);
   130     case 'J': return VerificationType(Long);
   130     case JVM_SIGNATURE_LONG:    return VerificationType(Long);
   131     case 'F': return VerificationType(Float);
   131     case JVM_SIGNATURE_FLOAT:   return VerificationType(Float);
   132     case 'D': return VerificationType(Double);
   132     case JVM_SIGNATURE_DOUBLE:  return VerificationType(Double);
   133     case '[':
   133     case JVM_SIGNATURE_ARRAY:
   134       component = context->create_temporary_symbol(
   134       component = context->create_temporary_symbol(
   135         name(), 1, name()->utf8_length());
   135         name(), 1, name()->utf8_length());
   136       return VerificationType::reference_type(component);
   136       return VerificationType::reference_type(component);
   137     case 'L':
   137     case JVM_SIGNATURE_CLASS:
   138       component = context->create_temporary_symbol(
   138       component = context->create_temporary_symbol(
   139         name(), 2, name()->utf8_length() - 1);
   139         name(), 2, name()->utf8_length() - 1);
   140       return VerificationType::reference_type(component);
   140       return VerificationType::reference_type(component);
   141     default:
   141     default:
   142       // Met an invalid type signature, e.g. [X
   142       // Met an invalid type signature, e.g. [X