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 +}