1142 return klass->is_subclass_of(SystemDictionary::MemberName_klass());
1143 }
1144 static bool is_instance(oop obj);
1145
1146 static bool is_method(oop obj);
1147
1148 // Relevant integer codes (keep these in synch. with MethodHandleNatives.Constants):
1149 enum {
1150 MN_IS_METHOD = 0x00010000, // method (not constructor)
1151 MN_IS_CONSTRUCTOR = 0x00020000, // constructor
1152 MN_IS_FIELD = 0x00040000, // field
1153 MN_IS_TYPE = 0x00080000, // nested type
1154 MN_CALLER_SENSITIVE = 0x00100000, // @CallerSensitive annotation detected
1155 MN_REFERENCE_KIND_SHIFT = 24, // refKind
1156 MN_REFERENCE_KIND_MASK = 0x0F000000 >> MN_REFERENCE_KIND_SHIFT,
1157 // The SEARCH_* bits are not for MN.flags but for the matchFlags argument of MHN.getMembers:
1158 MN_SEARCH_SUPERCLASSES = 0x00100000, // walk super classes
1159 MN_SEARCH_INTERFACES = 0x00200000, // walk implemented interfaces
1160 MN_NESTMATE_CLASS = 0x00000001,
1161 MN_HIDDEN_CLASS = 0x00000002,
1162 MN_WEAK_CLASS = 0x00000004,
1163 MN_ACCESS_VM_ANNOTATIONS = 0x00100000
1164 };
1165
1166 // Accessors for code generation:
1167 static int clazz_offset_in_bytes() { return _clazz_offset; }
1168 static int type_offset_in_bytes() { return _type_offset; }
1169 static int name_offset_in_bytes() { return _name_offset; }
1170 static int flags_offset_in_bytes() { return _flags_offset; }
1171 static int method_offset_in_bytes() { return _method_offset; }
1172 static int vmindex_offset_in_bytes() { return _vmindex_offset; }
1173 };
1174
1175
1176 // Interface to java.lang.invoke.MethodType objects
1177
1178 class java_lang_invoke_MethodType: AllStatic {
1179 friend class JavaClasses;
1180
1181 private:
1182 static int _rtype_offset;
|
1142 return klass->is_subclass_of(SystemDictionary::MemberName_klass());
1143 }
1144 static bool is_instance(oop obj);
1145
1146 static bool is_method(oop obj);
1147
1148 // Relevant integer codes (keep these in synch. with MethodHandleNatives.Constants):
1149 enum {
1150 MN_IS_METHOD = 0x00010000, // method (not constructor)
1151 MN_IS_CONSTRUCTOR = 0x00020000, // constructor
1152 MN_IS_FIELD = 0x00040000, // field
1153 MN_IS_TYPE = 0x00080000, // nested type
1154 MN_CALLER_SENSITIVE = 0x00100000, // @CallerSensitive annotation detected
1155 MN_REFERENCE_KIND_SHIFT = 24, // refKind
1156 MN_REFERENCE_KIND_MASK = 0x0F000000 >> MN_REFERENCE_KIND_SHIFT,
1157 // The SEARCH_* bits are not for MN.flags but for the matchFlags argument of MHN.getMembers:
1158 MN_SEARCH_SUPERCLASSES = 0x00100000, // walk super classes
1159 MN_SEARCH_INTERFACES = 0x00200000, // walk implemented interfaces
1160 MN_NESTMATE_CLASS = 0x00000001,
1161 MN_HIDDEN_CLASS = 0x00000002,
1162 MN_STRONG_LOADER_LINK = 0x00000004,
1163 MN_ACCESS_VM_ANNOTATIONS = 0x00100000
1164 };
1165
1166 // Accessors for code generation:
1167 static int clazz_offset_in_bytes() { return _clazz_offset; }
1168 static int type_offset_in_bytes() { return _type_offset; }
1169 static int name_offset_in_bytes() { return _name_offset; }
1170 static int flags_offset_in_bytes() { return _flags_offset; }
1171 static int method_offset_in_bytes() { return _method_offset; }
1172 static int vmindex_offset_in_bytes() { return _vmindex_offset; }
1173 };
1174
1175
1176 // Interface to java.lang.invoke.MethodType objects
1177
1178 class java_lang_invoke_MethodType: AllStatic {
1179 friend class JavaClasses;
1180
1181 private:
1182 static int _rtype_offset;
|