src/share/vm/utilities/constantTag.cpp

changeset 1957
136b78722a08
parent 1907
c18cbe5936b8
child 2015
083fde3b838e
     1.1 --- a/src/share/vm/utilities/constantTag.cpp	Mon Jun 07 14:17:01 2010 -0700
     1.2 +++ b/src/share/vm/utilities/constantTag.cpp	Wed Jun 09 18:50:45 2010 -0700
     1.3 @@ -28,56 +28,85 @@
     1.4  #ifndef PRODUCT
     1.5  
     1.6  void constantTag::print_on(outputStream* st) const {
     1.7 +  st->print(internal_name());
     1.8 +}
     1.9 +
    1.10 +#endif // PRODUCT
    1.11 +
    1.12 +BasicType constantTag::basic_type() const {
    1.13    switch (_tag) {
    1.14 +    case JVM_CONSTANT_Integer :
    1.15 +      return T_INT;
    1.16 +    case JVM_CONSTANT_Float :
    1.17 +      return T_FLOAT;
    1.18 +    case JVM_CONSTANT_Long :
    1.19 +      return T_LONG;
    1.20 +    case JVM_CONSTANT_Double :
    1.21 +      return T_DOUBLE;
    1.22 +
    1.23      case JVM_CONSTANT_Class :
    1.24 -      st->print("Class");
    1.25 -      break;
    1.26 -    case JVM_CONSTANT_Fieldref :
    1.27 -      st->print("Field");
    1.28 -      break;
    1.29 -    case JVM_CONSTANT_Methodref :
    1.30 -      st->print("Method");
    1.31 -      break;
    1.32 -    case JVM_CONSTANT_InterfaceMethodref :
    1.33 -      st->print("InterfaceMethod");
    1.34 -      break;
    1.35      case JVM_CONSTANT_String :
    1.36 -      st->print("String");
    1.37 -      break;
    1.38 -    case JVM_CONSTANT_Integer :
    1.39 -      st->print("Integer");
    1.40 -      break;
    1.41 -    case JVM_CONSTANT_Float :
    1.42 -      st->print("Float");
    1.43 -      break;
    1.44 -    case JVM_CONSTANT_Long :
    1.45 -      st->print("Long");
    1.46 -      break;
    1.47 -    case JVM_CONSTANT_Double :
    1.48 -      st->print("Double");
    1.49 -      break;
    1.50 -    case JVM_CONSTANT_NameAndType :
    1.51 -      st->print("NameAndType");
    1.52 -      break;
    1.53 -    case JVM_CONSTANT_Utf8 :
    1.54 -      st->print("Utf8");
    1.55 -      break;
    1.56      case JVM_CONSTANT_UnresolvedClass :
    1.57 -      st->print("Unresolved class");
    1.58 -      break;
    1.59 +    case JVM_CONSTANT_UnresolvedClassInError :
    1.60      case JVM_CONSTANT_ClassIndex :
    1.61 -      st->print("Unresolved class index");
    1.62 -      break;
    1.63      case JVM_CONSTANT_UnresolvedString :
    1.64 -      st->print("Unresolved string");
    1.65 -      break;
    1.66      case JVM_CONSTANT_StringIndex :
    1.67 -      st->print("Unresolved string index");
    1.68 -      break;
    1.69 +    case JVM_CONSTANT_MethodHandle :
    1.70 +    case JVM_CONSTANT_MethodType :
    1.71 +    case JVM_CONSTANT_Object :
    1.72 +      return T_OBJECT;
    1.73      default:
    1.74        ShouldNotReachHere();
    1.75 -      break;
    1.76 +      return T_ILLEGAL;
    1.77    }
    1.78  }
    1.79  
    1.80 -#endif // PRODUCT
    1.81 +
    1.82 +
    1.83 +const char* constantTag::internal_name() const {
    1.84 +  switch (_tag) {
    1.85 +    case JVM_CONSTANT_Invalid :
    1.86 +      return "Invalid index";
    1.87 +    case JVM_CONSTANT_Class :
    1.88 +      return "Class";
    1.89 +    case JVM_CONSTANT_Fieldref :
    1.90 +      return "Field";
    1.91 +    case JVM_CONSTANT_Methodref :
    1.92 +      return "Method";
    1.93 +    case JVM_CONSTANT_InterfaceMethodref :
    1.94 +      return "InterfaceMethod";
    1.95 +    case JVM_CONSTANT_String :
    1.96 +      return "String";
    1.97 +    case JVM_CONSTANT_Integer :
    1.98 +      return "Integer";
    1.99 +    case JVM_CONSTANT_Float :
   1.100 +      return "Float";
   1.101 +    case JVM_CONSTANT_Long :
   1.102 +      return "Long";
   1.103 +    case JVM_CONSTANT_Double :
   1.104 +      return "Double";
   1.105 +    case JVM_CONSTANT_NameAndType :
   1.106 +      return "NameAndType";
   1.107 +    case JVM_CONSTANT_MethodHandle :
   1.108 +      return "MethodHandle";
   1.109 +    case JVM_CONSTANT_MethodType :
   1.110 +      return "MethodType";
   1.111 +    case JVM_CONSTANT_Object :
   1.112 +      return "Object";
   1.113 +    case JVM_CONSTANT_Utf8 :
   1.114 +      return "Utf8";
   1.115 +    case JVM_CONSTANT_UnresolvedClass :
   1.116 +      return "Unresolved Class";
   1.117 +    case JVM_CONSTANT_UnresolvedClassInError :
   1.118 +      return "Unresolved Class Error";
   1.119 +    case JVM_CONSTANT_ClassIndex :
   1.120 +      return "Unresolved Class Index";
   1.121 +    case JVM_CONSTANT_UnresolvedString :
   1.122 +      return "Unresolved String";
   1.123 +    case JVM_CONSTANT_StringIndex :
   1.124 +      return "Unresolved String Index";
   1.125 +    default:
   1.126 +      ShouldNotReachHere();
   1.127 +      return "Illegal";
   1.128 +  }
   1.129 +}

mercurial