src/share/vm/classfile/javaClasses.hpp

Print this page




 959   // Accessors
 960   static oop            type(oop mh);
 961   static void       set_type(oop mh, oop mtype);
 962 
 963   static oop            form(oop mh);
 964   static void       set_form(oop mh, oop lform);
 965 
 966   // Testers
 967   static bool is_subclass(Klass* klass) {
 968     return klass->is_subclass_of(SystemDictionary::MethodHandle_klass());
 969   }
 970   static bool is_instance(oop obj) {
 971     return obj != NULL && is_subclass(obj->klass());
 972   }
 973 
 974   // Accessors for code generation:
 975   static int type_offset_in_bytes()             { return _type_offset; }
 976   static int form_offset_in_bytes()             { return _form_offset; }
 977 };
 978 


























 979 // Interface to java.lang.invoke.LambdaForm objects
 980 // (These are a private interface for managing adapter code generation.)
 981 
 982 class java_lang_invoke_LambdaForm: AllStatic {
 983   friend class JavaClasses;
 984 
 985  private:
 986   static int _vmentry_offset;  // type is MemberName
 987 
 988   static void compute_offsets();
 989 
 990  public:
 991   // Accessors
 992   static oop            vmentry(oop lform);
 993   static void       set_vmentry(oop lform, oop invoker);
 994 
 995   // Testers
 996   static bool is_subclass(Klass* klass) {
 997     return SystemDictionary::LambdaForm_klass() != NULL &&
 998       klass->is_subclass_of(SystemDictionary::LambdaForm_klass());




 959   // Accessors
 960   static oop            type(oop mh);
 961   static void       set_type(oop mh, oop mtype);
 962 
 963   static oop            form(oop mh);
 964   static void       set_form(oop mh, oop lform);
 965 
 966   // Testers
 967   static bool is_subclass(Klass* klass) {
 968     return klass->is_subclass_of(SystemDictionary::MethodHandle_klass());
 969   }
 970   static bool is_instance(oop obj) {
 971     return obj != NULL && is_subclass(obj->klass());
 972   }
 973 
 974   // Accessors for code generation:
 975   static int type_offset_in_bytes()             { return _type_offset; }
 976   static int form_offset_in_bytes()             { return _form_offset; }
 977 };
 978 
 979 // Interface to java.lang.invoke.DirectMethodHandle objects
 980 
 981 class java_lang_invoke_DirectMethodHandle: AllStatic {
 982   friend class JavaClasses;
 983 
 984  private:
 985   static int _member_offset;               // the MemberName of this DMH
 986 
 987   static void compute_offsets();
 988 
 989  public:
 990   // Accessors
 991   static oop  member(oop mh);
 992 
 993   // Testers
 994   static bool is_subclass(Klass* klass) {
 995     return klass->is_subclass_of(SystemDictionary::DirectMethodHandle_klass());
 996   }
 997   static bool is_instance(oop obj) {
 998     return obj != NULL && is_subclass(obj->klass());
 999   }
1000 
1001   // Accessors for code generation:
1002   static int member_offset_in_bytes()           { return _member_offset; }
1003 };
1004 
1005 // Interface to java.lang.invoke.LambdaForm objects
1006 // (These are a private interface for managing adapter code generation.)
1007 
1008 class java_lang_invoke_LambdaForm: AllStatic {
1009   friend class JavaClasses;
1010 
1011  private:
1012   static int _vmentry_offset;  // type is MemberName
1013 
1014   static void compute_offsets();
1015 
1016  public:
1017   // Accessors
1018   static oop            vmentry(oop lform);
1019   static void       set_vmentry(oop lform, oop invoker);
1020 
1021   // Testers
1022   static bool is_subclass(Klass* klass) {
1023     return SystemDictionary::LambdaForm_klass() != NULL &&
1024       klass->is_subclass_of(SystemDictionary::LambdaForm_klass());