974 // Accessors for code generation: |
974 // Accessors for code generation: |
975 static int type_offset_in_bytes() { return _type_offset; } |
975 static int type_offset_in_bytes() { return _type_offset; } |
976 static int form_offset_in_bytes() { return _form_offset; } |
976 static int form_offset_in_bytes() { return _form_offset; } |
977 }; |
977 }; |
978 |
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 |
979 // Interface to java.lang.invoke.LambdaForm objects |
1005 // Interface to java.lang.invoke.LambdaForm objects |
980 // (These are a private interface for managing adapter code generation.) |
1006 // (These are a private interface for managing adapter code generation.) |
981 |
1007 |
982 class java_lang_invoke_LambdaForm: AllStatic { |
1008 class java_lang_invoke_LambdaForm: AllStatic { |
983 friend class JavaClasses; |
1009 friend class JavaClasses; |