equal
deleted
inserted
replaced
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 |