< prev index next >

src/hotspot/share/oops/instanceKlass.hpp

 class DependencyContext;
 class fieldDescriptor;
 class jniIdMapBase;
 class JNIid;
 class JvmtiCachedClassFieldMap;
+class nmethodBucket;
 class SuperTypeClosure;
 
 // This is used in iterators below.
 class FieldClosure: public StackObj {
 public:

@@ -247,11 +248,12 u2 _major_version; // major version number of class file Thread* _init_thread; // Pointer to current thread doing initialization (to handle recusive initialization) OopMapCache* volatile _oop_map_cache; // OopMapCache for all methods in the klass (allocated lazily) JNIid* _jni_ids; // First JNI identifier for static fields in this class jmethodID* volatile _methods_jmethod_ids; // jmethodIDs corresponding to method_idnum, or NULL if none - intptr_t _dep_context; // packed DependencyContext structure + nmethodBucket* volatile _dep_context; // packed DependencyContext structure + uint64_t volatile _dep_context_last_cleaned; nmethod* _osr_nmethods_head; // Head of list of on-stack replacement nmethods for this class #if INCLUDE_JVMTI BreakpointInfo* _breakpoints; // bpt lists, managed by Method* // Linked instanceKlasses of previous versions InstanceKlass* _previous_versions;
@@ -974,11 +976,12 // maintenance of deoptimization dependencies inline DependencyContext dependencies(); int mark_dependent_nmethods(KlassDepChange& changes); void add_dependent_nmethod(nmethod* nm); - void remove_dependent_nmethod(nmethod* nm, bool delete_immediately); + void remove_dependent_nmethod(nmethod* nm); + void clean_dependency_context(); // On-stack replacement support nmethod* osr_nmethods_head() const { return _osr_nmethods_head; }; void set_osr_nmethods_head(nmethod* h) { _osr_nmethods_head = h; }; void add_osr_nmethod(nmethod* n);
< prev index next >