64 class DependencyContext; |
64 class DependencyContext; |
65 class fieldDescriptor; |
65 class fieldDescriptor; |
66 class jniIdMapBase; |
66 class jniIdMapBase; |
67 class JNIid; |
67 class JNIid; |
68 class JvmtiCachedClassFieldMap; |
68 class JvmtiCachedClassFieldMap; |
69 class MemberNameTable; |
|
70 class SuperTypeClosure; |
69 class SuperTypeClosure; |
71 |
70 |
72 // This is used in iterators below. |
71 // This is used in iterators below. |
73 class FieldClosure: public StackObj { |
72 class FieldClosure: public StackObj { |
74 public: |
73 public: |
217 _misc_has_passed_fingerprint_check = 1 << 10, // when this class was loaded, the fingerprint computed from its |
216 _misc_has_passed_fingerprint_check = 1 << 10, // when this class was loaded, the fingerprint computed from its |
218 // code source was found to be matching the value recorded by AOT. |
217 // code source was found to be matching the value recorded by AOT. |
219 _misc_is_scratch_class = 1 << 11, // class is the redefined scratch class |
218 _misc_is_scratch_class = 1 << 11, // class is the redefined scratch class |
220 _misc_is_shared_boot_class = 1 << 12, // defining class loader is boot class loader |
219 _misc_is_shared_boot_class = 1 << 12, // defining class loader is boot class loader |
221 _misc_is_shared_platform_class = 1 << 13, // defining class loader is platform class loader |
220 _misc_is_shared_platform_class = 1 << 13, // defining class loader is platform class loader |
222 _misc_is_shared_app_class = 1 << 14 // defining class loader is app class loader |
221 _misc_is_shared_app_class = 1 << 14, // defining class loader is app class loader |
|
222 _misc_has_resolved_methods = 1 << 15 // resolved methods table entries added for this class |
223 }; |
223 }; |
224 u2 loader_type_bits() { |
224 u2 loader_type_bits() { |
225 return _misc_is_shared_boot_class|_misc_is_shared_platform_class|_misc_is_shared_app_class; |
225 return _misc_is_shared_boot_class|_misc_is_shared_platform_class|_misc_is_shared_app_class; |
226 } |
226 } |
227 u2 _misc_flags; |
227 u2 _misc_flags; |
228 u2 _minor_version; // minor version number of class file |
228 u2 _minor_version; // minor version number of class file |
229 u2 _major_version; // major version number of class file |
229 u2 _major_version; // major version number of class file |
230 Thread* _init_thread; // Pointer to current thread doing initialization (to handle recusive initialization) |
230 Thread* _init_thread; // Pointer to current thread doing initialization (to handle recusive initialization) |
231 OopMapCache* volatile _oop_map_cache; // OopMapCache for all methods in the klass (allocated lazily) |
231 OopMapCache* volatile _oop_map_cache; // OopMapCache for all methods in the klass (allocated lazily) |
232 MemberNameTable* _member_names; // Member names |
|
233 JNIid* _jni_ids; // First JNI identifier for static fields in this class |
232 JNIid* _jni_ids; // First JNI identifier for static fields in this class |
234 jmethodID* volatile _methods_jmethod_ids; // jmethodIDs corresponding to method_idnum, or NULL if none |
233 jmethodID* volatile _methods_jmethod_ids; // jmethodIDs corresponding to method_idnum, or NULL if none |
235 intptr_t _dep_context; // packed DependencyContext structure |
234 intptr_t _dep_context; // packed DependencyContext structure |
236 nmethod* _osr_nmethods_head; // Head of list of on-stack replacement nmethods for this class |
235 nmethod* _osr_nmethods_head; // Head of list of on-stack replacement nmethods for this class |
237 #if INCLUDE_JVMTI |
236 #if INCLUDE_JVMTI |
745 |
744 |
746 void set_is_scratch_class() { |
745 void set_is_scratch_class() { |
747 _misc_flags |= _misc_is_scratch_class; |
746 _misc_flags |= _misc_is_scratch_class; |
748 } |
747 } |
749 |
748 |
|
749 bool has_resolved_methods() const { |
|
750 return (_misc_flags & _misc_has_resolved_methods) != 0; |
|
751 } |
|
752 |
|
753 void set_has_resolved_methods() { |
|
754 _misc_flags |= _misc_has_resolved_methods; |
|
755 } |
750 private: |
756 private: |
751 |
757 |
752 void set_kind(unsigned kind) { |
758 void set_kind(unsigned kind) { |
753 assert(kind <= _misc_kind_field_mask, "Invalid InstanceKlass kind"); |
759 assert(kind <= _misc_kind_field_mask, "Invalid InstanceKlass kind"); |
754 unsigned fmask = _misc_kind_field_mask << _misc_kind_field_pos; |
760 unsigned fmask = _misc_kind_field_mask << _misc_kind_field_pos; |
1331 virtual void remove_unshareable_info(); |
1337 virtual void remove_unshareable_info(); |
1332 virtual void restore_unshareable_info(ClassLoaderData* loader_data, Handle protection_domain, TRAPS); |
1338 virtual void restore_unshareable_info(ClassLoaderData* loader_data, Handle protection_domain, TRAPS); |
1333 |
1339 |
1334 // jvm support |
1340 // jvm support |
1335 jint compute_modifier_flags(TRAPS) const; |
1341 jint compute_modifier_flags(TRAPS) const; |
1336 |
|
1337 // JSR-292 support |
|
1338 MemberNameTable* member_names() { return _member_names; } |
|
1339 void set_member_names(MemberNameTable* member_names) { _member_names = member_names; } |
|
1340 oop add_member_name(Handle member_name, bool intern); |
|
1341 |
1342 |
1342 public: |
1343 public: |
1343 // JVMTI support |
1344 // JVMTI support |
1344 jint jvmti_class_status() const; |
1345 jint jvmti_class_status() const; |
1345 |
1346 |