src/hotspot/share/oops/instanceKlass.hpp
changeset 52781 436097b038a1
parent 52356 19c4a3eec4d7
child 52784 621efe32eb0b
equal deleted inserted replaced
52780:be588be89f68 52781:436097b038a1
    67 class DependencyContext;
    67 class DependencyContext;
    68 class fieldDescriptor;
    68 class fieldDescriptor;
    69 class jniIdMapBase;
    69 class jniIdMapBase;
    70 class JNIid;
    70 class JNIid;
    71 class JvmtiCachedClassFieldMap;
    71 class JvmtiCachedClassFieldMap;
       
    72 class nmethodBucket;
    72 class SuperTypeClosure;
    73 class SuperTypeClosure;
    73 
    74 
    74 // This is used in iterators below.
    75 // This is used in iterators below.
    75 class FieldClosure: public StackObj {
    76 class FieldClosure: public StackObj {
    76 public:
    77 public:
   247   u2              _major_version;        // major version number of class file
   248   u2              _major_version;        // major version number of class file
   248   Thread*         _init_thread;          // Pointer to current thread doing initialization (to handle recusive initialization)
   249   Thread*         _init_thread;          // Pointer to current thread doing initialization (to handle recusive initialization)
   249   OopMapCache*    volatile _oop_map_cache;   // OopMapCache for all methods in the klass (allocated lazily)
   250   OopMapCache*    volatile _oop_map_cache;   // OopMapCache for all methods in the klass (allocated lazily)
   250   JNIid*          _jni_ids;              // First JNI identifier for static fields in this class
   251   JNIid*          _jni_ids;              // First JNI identifier for static fields in this class
   251   jmethodID*      volatile _methods_jmethod_ids;  // jmethodIDs corresponding to method_idnum, or NULL if none
   252   jmethodID*      volatile _methods_jmethod_ids;  // jmethodIDs corresponding to method_idnum, or NULL if none
   252   intptr_t        _dep_context;          // packed DependencyContext structure
   253   nmethodBucket*  volatile _dep_context;          // packed DependencyContext structure
       
   254   uint64_t        volatile _dep_context_last_cleaned;
   253   nmethod*        _osr_nmethods_head;    // Head of list of on-stack replacement nmethods for this class
   255   nmethod*        _osr_nmethods_head;    // Head of list of on-stack replacement nmethods for this class
   254 #if INCLUDE_JVMTI
   256 #if INCLUDE_JVMTI
   255   BreakpointInfo* _breakpoints;          // bpt lists, managed by Method*
   257   BreakpointInfo* _breakpoints;          // bpt lists, managed by Method*
   256   // Linked instanceKlasses of previous versions
   258   // Linked instanceKlasses of previous versions
   257   InstanceKlass* _previous_versions;
   259   InstanceKlass* _previous_versions;
   974 
   976 
   975   // maintenance of deoptimization dependencies
   977   // maintenance of deoptimization dependencies
   976   inline DependencyContext dependencies();
   978   inline DependencyContext dependencies();
   977   int  mark_dependent_nmethods(KlassDepChange& changes);
   979   int  mark_dependent_nmethods(KlassDepChange& changes);
   978   void add_dependent_nmethod(nmethod* nm);
   980   void add_dependent_nmethod(nmethod* nm);
   979   void remove_dependent_nmethod(nmethod* nm, bool delete_immediately);
   981   void remove_dependent_nmethod(nmethod* nm);
       
   982   void clean_dependency_context();
   980 
   983 
   981   // On-stack replacement support
   984   // On-stack replacement support
   982   nmethod* osr_nmethods_head() const         { return _osr_nmethods_head; };
   985   nmethod* osr_nmethods_head() const         { return _osr_nmethods_head; };
   983   void set_osr_nmethods_head(nmethod* h)     { _osr_nmethods_head = h; };
   986   void set_osr_nmethods_head(nmethod* h)     { _osr_nmethods_head = h; };
   984   void add_osr_nmethod(nmethod* n);
   987   void add_osr_nmethod(nmethod* n);