src/hotspot/share/oops/klass.hpp
changeset 50113 caf115bb98ad
parent 50039 9fec54fe663d
child 50532 a18c60527166
equal deleted inserted replaced
50112:7a2a740815b7 50113:caf115bb98ad
    30 #include "memory/iterator.hpp"
    30 #include "memory/iterator.hpp"
    31 #include "memory/memRegion.hpp"
    31 #include "memory/memRegion.hpp"
    32 #include "oops/metadata.hpp"
    32 #include "oops/metadata.hpp"
    33 #include "oops/oop.hpp"
    33 #include "oops/oop.hpp"
    34 #include "oops/oopHandle.hpp"
    34 #include "oops/oopHandle.hpp"
    35 #include "trace/traceMacros.hpp"
       
    36 #include "utilities/accessFlags.hpp"
    35 #include "utilities/accessFlags.hpp"
    37 #include "utilities/macros.hpp"
    36 #include "utilities/macros.hpp"
       
    37 #if INCLUDE_JFR
       
    38 #include "jfr/support/jfrTraceIdExtension.hpp"
       
    39 #endif
    38 
    40 
    39 //
    41 //
    40 // A Klass provides:
    42 // A Klass provides:
    41 //  1: language level class object (method dictionary etc.)
    43 //  1: language level class object (method dictionary etc.)
    42 //  2: provide vm dispatch behavior for the object
    44 //  2: provide vm dispatch behavior for the object
   136   ClassLoaderData* _class_loader_data;
   138   ClassLoaderData* _class_loader_data;
   137 
   139 
   138   jint        _modifier_flags;  // Processed access flags, for use by Class.getModifiers.
   140   jint        _modifier_flags;  // Processed access flags, for use by Class.getModifiers.
   139   AccessFlags _access_flags;    // Access flags. The class/interface distinction is stored here.
   141   AccessFlags _access_flags;    // Access flags. The class/interface distinction is stored here.
   140 
   142 
   141   TRACE_DEFINE_TRACE_ID_FIELD;
   143   JFR_ONLY(DEFINE_TRACE_ID_FIELD;)
   142 
   144 
   143   // Biased locking implementation and statistics
   145   // Biased locking implementation and statistics
   144   // (the 64-bit chunk goes first, to avoid some fragmentation)
   146   // (the 64-bit chunk goes first, to avoid some fragmentation)
   145   jlong    _last_biased_lock_bulk_revocation_time;
   147   jlong    _last_biased_lock_bulk_revocation_time;
   146   markOop  _prototype_header;   // Used when biased locking is both enabled and disabled for this type
   148   markOop  _prototype_header;   // Used when biased locking is both enabled and disabled for this type
   626   int atomic_incr_biased_lock_revocation_count();
   628   int atomic_incr_biased_lock_revocation_count();
   627   void set_biased_lock_revocation_count(int val) { _biased_lock_revocation_count = (jint) val; }
   629   void set_biased_lock_revocation_count(int val) { _biased_lock_revocation_count = (jint) val; }
   628   jlong last_biased_lock_bulk_revocation_time() { return _last_biased_lock_bulk_revocation_time; }
   630   jlong last_biased_lock_bulk_revocation_time() { return _last_biased_lock_bulk_revocation_time; }
   629   void  set_last_biased_lock_bulk_revocation_time(jlong cur_time) { _last_biased_lock_bulk_revocation_time = cur_time; }
   631   void  set_last_biased_lock_bulk_revocation_time(jlong cur_time) { _last_biased_lock_bulk_revocation_time = cur_time; }
   630 
   632 
   631   TRACE_DEFINE_TRACE_ID_METHODS;
   633   JFR_ONLY(DEFINE_TRACE_ID_METHODS;)
   632 
   634 
   633   virtual void metaspace_pointers_do(MetaspaceClosure* iter);
   635   virtual void metaspace_pointers_do(MetaspaceClosure* iter);
   634   virtual MetaspaceObj::Type type() const { return ClassType; }
   636   virtual MetaspaceObj::Type type() const { return ClassType; }
   635 
   637 
   636   // Iff the class loader (or mirror for anonymous classes) is alive the
   638   // Iff the class loader (or mirror for anonymous classes) is alive the