src/share/vm/classfile/vmSymbols.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6839872 Sdiff src/share/vm/classfile

src/share/vm/classfile/vmSymbols.hpp

Print this page
rev 2143 : 6839872: remove implementation inheritance from JSR 292 APIs
Summary: Move all JSR 292 classes into the java.dyn package.
Reviewed-by:


 223   template(annotations_name,                          "annotations")                              \
 224   template(parameter_annotations_name,                "parameterAnnotations")                     \
 225   template(annotation_default_name,                   "annotationDefault")                        \
 226   template(sun_reflect_ConstantPool,                  "sun/reflect/ConstantPool")                 \
 227   template(constantPoolOop_name,                      "constantPoolOop")                          \
 228   template(sun_reflect_UnsafeStaticFieldAccessorImpl, "sun/reflect/UnsafeStaticFieldAccessorImpl")\
 229   template(base_name,                                 "base")                                     \
 230                                                                                                   \
 231   /* Support for JSR 292 & invokedynamic (JDK 1.7 and above) */                                   \
 232   template(java_dyn_InvokeDynamic,                    "java/dyn/InvokeDynamic")                   \
 233   template(java_dyn_Linkage,                          "java/dyn/Linkage")                         \
 234   template(java_dyn_CallSite,                         "java/dyn/CallSite")                        \
 235   template(java_dyn_MethodHandle,                     "java/dyn/MethodHandle")                    \
 236   template(java_dyn_MethodType,                       "java/dyn/MethodType")                      \
 237   template(java_dyn_WrongMethodTypeException,         "java/dyn/WrongMethodTypeException")        \
 238   template(java_dyn_MethodType_signature,             "Ljava/dyn/MethodType;")                    \
 239   template(java_dyn_MethodHandle_signature,           "Ljava/dyn/MethodHandle;")                  \
 240   /* internal classes known only to the JVM: */                                                   \
 241   template(java_dyn_MethodTypeForm,                   "java/dyn/MethodTypeForm")                  \
 242   template(java_dyn_MethodTypeForm_signature,         "Ljava/dyn/MethodTypeForm;")                \
 243   template(sun_dyn_MemberName,                        "sun/dyn/MemberName")                       \
 244   template(sun_dyn_MemberName_signature,              "Lsun/dyn/MemberName;")                     \
 245   template(sun_dyn_MethodHandleImpl,                  "sun/dyn/MethodHandleImpl")                 \
 246   template(sun_dyn_MethodHandleNatives,               "sun/dyn/MethodHandleNatives")              \
 247   template(sun_dyn_AdapterMethodHandle,               "sun/dyn/AdapterMethodHandle")              \
 248   template(sun_dyn_BoundMethodHandle,                 "sun/dyn/BoundMethodHandle")                \
 249   template(sun_dyn_DirectMethodHandle,                "sun/dyn/DirectMethodHandle")               \





 250   /* internal up-calls made only by the JVM, via class sun.dyn.MethodHandleNatives: */            \
 251   template(findMethodHandleType_name,                 "findMethodHandleType")                     \
 252   template(findMethodHandleType_signature, "(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/dyn/MethodType;") \
 253   template(notifyGenericMethodType_name,              "notifyGenericMethodType")                  \
 254   template(notifyGenericMethodType_signature,         "(Ljava/dyn/MethodType;)V")                 \
 255   template(linkMethodHandleConstant_name,             "linkMethodHandleConstant")                 \
 256   template(linkMethodHandleConstant_signature, "(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/dyn/MethodHandle;") \
 257   template(makeDynamicCallSite_name,                  "makeDynamicCallSite")                      \
 258   template(makeDynamicCallSite_signature, "(Ljava/dyn/MethodHandle;Ljava/lang/String;Ljava/dyn/MethodType;Ljava/lang/Object;Lsun/dyn/MemberName;I)Ljava/dyn/CallSite;") \

 259   NOT_LP64(  do_alias(machine_word_signature,         int_signature)  )                           \
 260   LP64_ONLY( do_alias(machine_word_signature,         long_signature) )                           \
 261                                                                                                   \
 262   /* common method and field names */                                                             \
 263   template(object_initializer_name,                   "<init>")                                   \
 264   template(class_initializer_name,                    "<clinit>")                                 \
 265   template(println_name,                              "println")                                  \
 266   template(printStackTrace_name,                      "printStackTrace")                          \
 267   template(main_name,                                 "main")                                     \
 268   template(name_name,                                 "name")                                     \
 269   template(priority_name,                             "priority")                                 \
 270   template(stillborn_name,                            "stillborn")                                \
 271   template(group_name,                                "group")                                    \
 272   template(daemon_name,                               "daemon")                                   \
 273   template(eetop_name,                                "eetop")                                    \
 274   template(thread_status_name,                        "threadStatus")                             \
 275   template(run_method_name,                           "run")                                      \
 276   template(exit_method_name,                          "exit")                                     \
 277   template(add_method_name,                           "add")                                      \
 278   template(parent_name,                               "parent")                                   \


 865                                                                                                                           \
 866   do_intrinsic(_StringBuffer_void,   java_lang_StringBuffer, object_initializer_name, void_method_signature,       F_R)   \
 867   do_intrinsic(_StringBuffer_int,    java_lang_StringBuffer, object_initializer_name, int_void_signature,          F_R)   \
 868   do_intrinsic(_StringBuffer_String, java_lang_StringBuffer, object_initializer_name, string_void_signature,       F_R)   \
 869                                                                                                                           \
 870   do_intrinsic(_StringBuffer_append_char,   java_lang_StringBuffer, append_name, char_StringBuffer_signature,      F_Y)   \
 871   do_intrinsic(_StringBuffer_append_int,    java_lang_StringBuffer, append_name, int_StringBuffer_signature,       F_Y)   \
 872   do_intrinsic(_StringBuffer_append_String, java_lang_StringBuffer, append_name, String_StringBuffer_signature,    F_Y)   \
 873                                                                                                                           \
 874   do_intrinsic(_StringBuffer_toString,  java_lang_StringBuffer, toString_name, void_string_signature,              F_Y)   \
 875                                                                                                                           \
 876   do_intrinsic(_Integer_toString,      java_lang_Integer, toString_name, int_String_signature,                     F_S)   \
 877                                                                                                                           \
 878   do_intrinsic(_String_String, java_lang_String, object_initializer_name, string_void_signature,                   F_R)   \
 879                                                                                                                           \
 880   do_intrinsic(_Object_init,              java_lang_Object, object_initializer_name, void_method_signature,        F_R)   \
 881   /*    (symbol object_initializer_name defined above) */                                                                 \
 882                                                                                                                           \
 883   do_intrinsic(_invoke,                   java_lang_reflect_Method, invoke_name, object_object_array_object_signature, F_R) \
 884   /*   (symbols invoke_name and invoke_signature defined above) */                                                      \
 885   do_intrinsic(_checkSpreadArgument,      sun_dyn_MethodHandleImpl, checkSpreadArgument_name, checkSpreadArgument_signature, F_S) \

 886    do_name(    checkSpreadArgument_name,       "checkSpreadArgument")                                                   \
 887    do_name(    checkSpreadArgument_signature,  "(Ljava/lang/Object;I)V")                                                \
 888   do_intrinsic(_invokeExact,              java_dyn_MethodHandle, invokeExact_name,   object_array_object_signature, F_RN) \
 889   do_intrinsic(_invokeGeneric,            java_dyn_MethodHandle, invokeGeneric_name, object_array_object_signature, F_RN) \
 890   do_intrinsic(_invokeVarargs,            java_dyn_MethodHandle, invokeVarargs_name, object_array_object_signature, F_R)  \
 891   do_intrinsic(_invokeDynamic,            java_dyn_InvokeDynamic, star_name,         object_array_object_signature, F_SN) \
 892                                                                                                                         \
 893   /* unboxing methods: */                                                                                               \
 894   do_intrinsic(_booleanValue,             java_lang_Boolean,      booleanValue_name, void_boolean_signature, F_R)       \
 895    do_name(     booleanValue_name,       "booleanValue")                                                                \
 896   do_intrinsic(_byteValue,                java_lang_Byte,         byteValue_name, void_byte_signature, F_R)             \
 897    do_name(     byteValue_name,          "byteValue")                                                                   \
 898   do_intrinsic(_charValue,                java_lang_Character,    charValue_name, void_char_signature, F_R)             \
 899    do_name(     charValue_name,          "charValue")                                                                   \
 900   do_intrinsic(_shortValue,               java_lang_Short,        shortValue_name, void_short_signature, F_R)           \
 901    do_name(     shortValue_name,         "shortValue")                                                                  \
 902   do_intrinsic(_intValue,                 java_lang_Integer,      intValue_name, void_int_signature, F_R)               \
 903    do_name(     intValue_name,           "intValue")                                                                    \
 904   do_intrinsic(_longValue,                java_lang_Long,         longValue_name, void_long_signature, F_R)             \
 905    do_name(     longValue_name,          "longValue")                                                                   \


 978   // Sharing support
 979   static void symbols_do(SymbolClosure* f);
 980   static void serialize(SerializeOopClosure* soc);
 981 
 982   static Symbol* type_signature(BasicType t) {
 983     assert((uint)t < T_VOID+1, "range check");
 984     assert(_type_signatures[t] != NULL, "domain check");
 985     return _type_signatures[t];
 986   }
 987   // inverse of type_signature; returns T_OBJECT if s is not recognized
 988   static BasicType signature_type(Symbol* s);
 989 
 990   static Symbol* symbol_at(SID id) {
 991     assert(id >= FIRST_SID && id < SID_LIMIT, "oob");
 992     assert(_symbols[id] != NULL, "init");
 993     return _symbols[id];
 994   }
 995 
 996   // Returns symbol's SID if one is assigned, else NO_SID.
 997   static SID find_sid(Symbol* symbol);

 998 
 999 #ifndef PRODUCT
1000   // No need for this in the product:
1001   static const char* name_for(SID sid);
1002 #endif //PRODUCT
1003 };
1004 
1005 // VM Intrinsic ID's uniquely identify some very special methods
1006 class vmIntrinsics: AllStatic {
1007   friend class vmSymbols;
1008   friend class ciObjectFactory;
1009 
1010  public:
1011   // Accessing
1012   enum ID {
1013     _none = 0,                      // not an intrinsic (default answer)
1014 
1015     #define VM_INTRINSIC_ENUM(id, klass, name, sig, flags)  id,
1016     VM_INTRINSICS_DO(VM_INTRINSIC_ENUM,
1017                      VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE)




 223   template(annotations_name,                          "annotations")                              \
 224   template(parameter_annotations_name,                "parameterAnnotations")                     \
 225   template(annotation_default_name,                   "annotationDefault")                        \
 226   template(sun_reflect_ConstantPool,                  "sun/reflect/ConstantPool")                 \
 227   template(constantPoolOop_name,                      "constantPoolOop")                          \
 228   template(sun_reflect_UnsafeStaticFieldAccessorImpl, "sun/reflect/UnsafeStaticFieldAccessorImpl")\
 229   template(base_name,                                 "base")                                     \
 230                                                                                                   \
 231   /* Support for JSR 292 & invokedynamic (JDK 1.7 and above) */                                   \
 232   template(java_dyn_InvokeDynamic,                    "java/dyn/InvokeDynamic")                   \
 233   template(java_dyn_Linkage,                          "java/dyn/Linkage")                         \
 234   template(java_dyn_CallSite,                         "java/dyn/CallSite")                        \
 235   template(java_dyn_MethodHandle,                     "java/dyn/MethodHandle")                    \
 236   template(java_dyn_MethodType,                       "java/dyn/MethodType")                      \
 237   template(java_dyn_WrongMethodTypeException,         "java/dyn/WrongMethodTypeException")        \
 238   template(java_dyn_MethodType_signature,             "Ljava/dyn/MethodType;")                    \
 239   template(java_dyn_MethodHandle_signature,           "Ljava/dyn/MethodHandle;")                  \
 240   /* internal classes known only to the JVM: */                                                   \
 241   template(java_dyn_MethodTypeForm,                   "java/dyn/MethodTypeForm")                  \
 242   template(java_dyn_MethodTypeForm_signature,         "Ljava/dyn/MethodTypeForm;")                \
 243   template(java_dyn_MemberName,                       "java/dyn/MemberName")                      \
 244   template(java_dyn_MethodHandleImpl,                 "java/dyn/MethodHandleImpl")                \
 245   template(java_dyn_MethodHandleNatives,              "java/dyn/MethodHandleNatives")             \
 246   template(java_dyn_AdapterMethodHandle,              "java/dyn/AdapterMethodHandle")             \
 247   template(java_dyn_BoundMethodHandle,                "java/dyn/BoundMethodHandle")               \
 248   template(java_dyn_DirectMethodHandle,               "java/dyn/DirectMethodHandle")              \
 249   template(sun_dyn_MemberName,                        "sun/dyn/MemberName")             /* AllowTransitionalJSR292 ONLY */ \
 250   template(sun_dyn_MethodHandleImpl,                  "sun/dyn/MethodHandleImpl")       /* AllowTransitionalJSR292 ONLY */ \
 251   template(sun_dyn_MethodHandleNatives,               "sun/dyn/MethodHandleNatives")    /* AllowTransitionalJSR292 ONLY */ \
 252   template(sun_dyn_AdapterMethodHandle,               "sun/dyn/AdapterMethodHandle")    /* AllowTransitionalJSR292 ONLY */ \
 253   template(sun_dyn_BoundMethodHandle,                 "sun/dyn/BoundMethodHandle")      /* AllowTransitionalJSR292 ONLY */ \
 254   template(sun_dyn_DirectMethodHandle,                "sun/dyn/DirectMethodHandle")     /* AllowTransitionalJSR292 ONLY */ \
 255   /* internal up-calls made only by the JVM, via class sun.dyn.MethodHandleNatives: */            \
 256   template(findMethodHandleType_name,                 "findMethodHandleType")                     \
 257   template(findMethodHandleType_signature, "(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/dyn/MethodType;") \
 258   template(notifyGenericMethodType_name,              "notifyGenericMethodType")                  \
 259   template(notifyGenericMethodType_signature,         "(Ljava/dyn/MethodType;)V")                 \
 260   template(linkMethodHandleConstant_name,             "linkMethodHandleConstant")                 \
 261   template(linkMethodHandleConstant_signature, "(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/dyn/MethodHandle;") \
 262   template(makeDynamicCallSite_name,                  "makeDynamicCallSite")                      \
 263   template(makeDynamicCallSite_signature, "(Ljava/dyn/MethodHandle;Ljava/lang/String;Ljava/dyn/MethodType;Ljava/lang/Object;Ljava/dyn/MemberName;I)Ljava/dyn/CallSite;") \
 264   template(makeDynamicCallSite_TRANS_signature, "(Ljava/dyn/MethodHandle;Ljava/lang/String;Ljava/dyn/MethodType;Ljava/lang/Object;Lsun/dyn/MemberName;I)Ljava/dyn/CallSite;") /* AllowTransitionalJSR292 ONLY */ \
 265   NOT_LP64(  do_alias(machine_word_signature,         int_signature)  )                           \
 266   LP64_ONLY( do_alias(machine_word_signature,         long_signature) )                           \
 267                                                                                                   \
 268   /* common method and field names */                                                             \
 269   template(object_initializer_name,                   "<init>")                                   \
 270   template(class_initializer_name,                    "<clinit>")                                 \
 271   template(println_name,                              "println")                                  \
 272   template(printStackTrace_name,                      "printStackTrace")                          \
 273   template(main_name,                                 "main")                                     \
 274   template(name_name,                                 "name")                                     \
 275   template(priority_name,                             "priority")                                 \
 276   template(stillborn_name,                            "stillborn")                                \
 277   template(group_name,                                "group")                                    \
 278   template(daemon_name,                               "daemon")                                   \
 279   template(eetop_name,                                "eetop")                                    \
 280   template(thread_status_name,                        "threadStatus")                             \
 281   template(run_method_name,                           "run")                                      \
 282   template(exit_method_name,                          "exit")                                     \
 283   template(add_method_name,                           "add")                                      \
 284   template(parent_name,                               "parent")                                   \


 871                                                                                                                           \
 872   do_intrinsic(_StringBuffer_void,   java_lang_StringBuffer, object_initializer_name, void_method_signature,       F_R)   \
 873   do_intrinsic(_StringBuffer_int,    java_lang_StringBuffer, object_initializer_name, int_void_signature,          F_R)   \
 874   do_intrinsic(_StringBuffer_String, java_lang_StringBuffer, object_initializer_name, string_void_signature,       F_R)   \
 875                                                                                                                           \
 876   do_intrinsic(_StringBuffer_append_char,   java_lang_StringBuffer, append_name, char_StringBuffer_signature,      F_Y)   \
 877   do_intrinsic(_StringBuffer_append_int,    java_lang_StringBuffer, append_name, int_StringBuffer_signature,       F_Y)   \
 878   do_intrinsic(_StringBuffer_append_String, java_lang_StringBuffer, append_name, String_StringBuffer_signature,    F_Y)   \
 879                                                                                                                           \
 880   do_intrinsic(_StringBuffer_toString,  java_lang_StringBuffer, toString_name, void_string_signature,              F_Y)   \
 881                                                                                                                           \
 882   do_intrinsic(_Integer_toString,      java_lang_Integer, toString_name, int_String_signature,                     F_S)   \
 883                                                                                                                           \
 884   do_intrinsic(_String_String, java_lang_String, object_initializer_name, string_void_signature,                   F_R)   \
 885                                                                                                                           \
 886   do_intrinsic(_Object_init,              java_lang_Object, object_initializer_name, void_method_signature,        F_R)   \
 887   /*    (symbol object_initializer_name defined above) */                                                                 \
 888                                                                                                                           \
 889   do_intrinsic(_invoke,                   java_lang_reflect_Method, invoke_name, object_object_array_object_signature, F_R) \
 890   /*   (symbols invoke_name and invoke_signature defined above) */                                                      \
 891   do_intrinsic(_checkSpreadArgument,      java_dyn_MethodHandleNatives, checkSpreadArgument_name, checkSpreadArgument_signature, F_S) \
 892   do_intrinsic(_checkSpreadArgument_TRANS, sun_dyn_MethodHandleImpl,    checkSpreadArgument_name, checkSpreadArgument_signature, F_S) /* AllowTransitionalJSR292 ONLY */ \
 893    do_name(    checkSpreadArgument_name,       "checkSpreadArgument")                                                   \
 894    do_name(    checkSpreadArgument_signature,  "(Ljava/lang/Object;I)V")                                                \
 895   do_intrinsic(_invokeExact,              java_dyn_MethodHandle, invokeExact_name,   object_array_object_signature, F_RN) \
 896   do_intrinsic(_invokeGeneric,            java_dyn_MethodHandle, invokeGeneric_name, object_array_object_signature, F_RN) \
 897   do_intrinsic(_invokeVarargs,            java_dyn_MethodHandle, invokeVarargs_name, object_array_object_signature, F_R)  \
 898   do_intrinsic(_invokeDynamic,            java_dyn_InvokeDynamic, star_name,         object_array_object_signature, F_SN) \
 899                                                                                                                         \
 900   /* unboxing methods: */                                                                                               \
 901   do_intrinsic(_booleanValue,             java_lang_Boolean,      booleanValue_name, void_boolean_signature, F_R)       \
 902    do_name(     booleanValue_name,       "booleanValue")                                                                \
 903   do_intrinsic(_byteValue,                java_lang_Byte,         byteValue_name, void_byte_signature, F_R)             \
 904    do_name(     byteValue_name,          "byteValue")                                                                   \
 905   do_intrinsic(_charValue,                java_lang_Character,    charValue_name, void_char_signature, F_R)             \
 906    do_name(     charValue_name,          "charValue")                                                                   \
 907   do_intrinsic(_shortValue,               java_lang_Short,        shortValue_name, void_short_signature, F_R)           \
 908    do_name(     shortValue_name,         "shortValue")                                                                  \
 909   do_intrinsic(_intValue,                 java_lang_Integer,      intValue_name, void_int_signature, F_R)               \
 910    do_name(     intValue_name,           "intValue")                                                                    \
 911   do_intrinsic(_longValue,                java_lang_Long,         longValue_name, void_long_signature, F_R)             \
 912    do_name(     longValue_name,          "longValue")                                                                   \


 985   // Sharing support
 986   static void symbols_do(SymbolClosure* f);
 987   static void serialize(SerializeOopClosure* soc);
 988 
 989   static Symbol* type_signature(BasicType t) {
 990     assert((uint)t < T_VOID+1, "range check");
 991     assert(_type_signatures[t] != NULL, "domain check");
 992     return _type_signatures[t];
 993   }
 994   // inverse of type_signature; returns T_OBJECT if s is not recognized
 995   static BasicType signature_type(Symbol* s);
 996 
 997   static Symbol* symbol_at(SID id) {
 998     assert(id >= FIRST_SID && id < SID_LIMIT, "oob");
 999     assert(_symbols[id] != NULL, "init");
1000     return _symbols[id];
1001   }
1002 
1003   // Returns symbol's SID if one is assigned, else NO_SID.
1004   static SID find_sid(Symbol* symbol);
1005   static SID find_sid(const char* symbol_name);
1006 
1007 #ifndef PRODUCT
1008   // No need for this in the product:
1009   static const char* name_for(SID sid);
1010 #endif //PRODUCT
1011 };
1012 
1013 // VM Intrinsic ID's uniquely identify some very special methods
1014 class vmIntrinsics: AllStatic {
1015   friend class vmSymbols;
1016   friend class ciObjectFactory;
1017 
1018  public:
1019   // Accessing
1020   enum ID {
1021     _none = 0,                      // not an intrinsic (default answer)
1022 
1023     #define VM_INTRINSIC_ENUM(id, klass, name, sig, flags)  id,
1024     VM_INTRINSICS_DO(VM_INTRINSIC_ENUM,
1025                      VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE)


src/share/vm/classfile/vmSymbols.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File