230 _misc_should_verify_class = 1 << 4, // allow caching of preverification
231 _misc_is_unsafe_anonymous = 1 << 5, // has embedded _unsafe_anonymous_host field
232 _misc_is_contended = 1 << 6, // marked with contended annotation
233 _misc_has_nonstatic_concrete_methods = 1 << 7, // class/superclass/implemented interfaces has non-static, concrete methods
234 _misc_declares_nonstatic_concrete_methods = 1 << 8, // directly declares non-static, concrete methods
235 _misc_has_been_redefined = 1 << 9, // class has been redefined
236 _misc_has_passed_fingerprint_check = 1 << 10, // when this class was loaded, the fingerprint computed from its
237 // code source was found to be matching the value recorded by AOT.
238 _misc_is_scratch_class = 1 << 11, // class is the redefined scratch class
239 _misc_is_shared_boot_class = 1 << 12, // defining class loader is boot class loader
240 _misc_is_shared_platform_class = 1 << 13, // defining class loader is platform class loader
241 _misc_is_shared_app_class = 1 << 14, // defining class loader is app class loader
242 _misc_has_resolved_methods = 1 << 15 // resolved methods table entries added for this class
243 };
244 u2 loader_type_bits() {
245 return _misc_is_shared_boot_class|_misc_is_shared_platform_class|_misc_is_shared_app_class;
246 }
247 u2 _misc_flags;
248 u2 _minor_version; // minor version number of class file
249 u2 _major_version; // major version number of class file
250 Thread* _init_thread; // Pointer to current thread doing initialization (to handle recusive initialization)
251 OopMapCache* volatile _oop_map_cache; // OopMapCache for all methods in the klass (allocated lazily)
252 JNIid* _jni_ids; // First JNI identifier for static fields in this class
253 jmethodID* volatile _methods_jmethod_ids; // jmethodIDs corresponding to method_idnum, or NULL if none
254 nmethodBucket* volatile _dep_context; // packed DependencyContext structure
255 uint64_t volatile _dep_context_last_cleaned;
256 nmethod* _osr_nmethods_head; // Head of list of on-stack replacement nmethods for this class
257 #if INCLUDE_JVMTI
258 BreakpointInfo* _breakpoints; // bpt lists, managed by Method*
259 // Linked instanceKlasses of previous versions
260 InstanceKlass* _previous_versions;
261 // JVMTI fields can be moved to their own structure - see 6315920
262 // JVMTI: cached class file, before retransformable agent modified it in CFLH
263 JvmtiCachedClassFileData* _cached_class_file;
264 #endif
265
266 volatile u2 _idnum_allocated_count; // JNI/JVMTI: increments with the addition of methods, old ids don't change
267
268 // Class states are defined as ClassState (see above).
269 // Place the _init_state here to utilize the unused 2-byte after
270 // _idnum_allocated_count.
|
230 _misc_should_verify_class = 1 << 4, // allow caching of preverification
231 _misc_is_unsafe_anonymous = 1 << 5, // has embedded _unsafe_anonymous_host field
232 _misc_is_contended = 1 << 6, // marked with contended annotation
233 _misc_has_nonstatic_concrete_methods = 1 << 7, // class/superclass/implemented interfaces has non-static, concrete methods
234 _misc_declares_nonstatic_concrete_methods = 1 << 8, // directly declares non-static, concrete methods
235 _misc_has_been_redefined = 1 << 9, // class has been redefined
236 _misc_has_passed_fingerprint_check = 1 << 10, // when this class was loaded, the fingerprint computed from its
237 // code source was found to be matching the value recorded by AOT.
238 _misc_is_scratch_class = 1 << 11, // class is the redefined scratch class
239 _misc_is_shared_boot_class = 1 << 12, // defining class loader is boot class loader
240 _misc_is_shared_platform_class = 1 << 13, // defining class loader is platform class loader
241 _misc_is_shared_app_class = 1 << 14, // defining class loader is app class loader
242 _misc_has_resolved_methods = 1 << 15 // resolved methods table entries added for this class
243 };
244 u2 loader_type_bits() {
245 return _misc_is_shared_boot_class|_misc_is_shared_platform_class|_misc_is_shared_app_class;
246 }
247 u2 _misc_flags;
248 u2 _minor_version; // minor version number of class file
249 u2 _major_version; // major version number of class file
250 Thread* _init_thread; // Pointer to current thread doing initialization (to handle recursive initialization)
251 OopMapCache* volatile _oop_map_cache; // OopMapCache for all methods in the klass (allocated lazily)
252 JNIid* _jni_ids; // First JNI identifier for static fields in this class
253 jmethodID* volatile _methods_jmethod_ids; // jmethodIDs corresponding to method_idnum, or NULL if none
254 nmethodBucket* volatile _dep_context; // packed DependencyContext structure
255 uint64_t volatile _dep_context_last_cleaned;
256 nmethod* _osr_nmethods_head; // Head of list of on-stack replacement nmethods for this class
257 #if INCLUDE_JVMTI
258 BreakpointInfo* _breakpoints; // bpt lists, managed by Method*
259 // Linked instanceKlasses of previous versions
260 InstanceKlass* _previous_versions;
261 // JVMTI fields can be moved to their own structure - see 6315920
262 // JVMTI: cached class file, before retransformable agent modified it in CFLH
263 JvmtiCachedClassFileData* _cached_class_file;
264 #endif
265
266 volatile u2 _idnum_allocated_count; // JNI/JVMTI: increments with the addition of methods, old ids don't change
267
268 // Class states are defined as ClassState (see above).
269 // Place the _init_state here to utilize the unused 2-byte after
270 // _idnum_allocated_count.
|