< prev index next > src/hotspot/share/oops/klass.hpp
Print this page
_has_value_based_class_annotation = 1 << 2,
_verified_at_dump_time = 1 << 3,
_has_archived_enum_objs = 1 << 4,
// This class was not loaded from a classfile in the module image
// or classpath.
! _is_generated_shared_class = 1 << 5
};
#endif
KlassFlags _misc_flags;
_has_value_based_class_annotation = 1 << 2,
_verified_at_dump_time = 1 << 3,
_has_archived_enum_objs = 1 << 4,
// This class was not loaded from a classfile in the module image
// or classpath.
! _is_generated_shared_class = 1 << 5,
+ // The archived mirror is already initialized. No need to call <clinit>
+ _has_preinitialized_mirror = 1 << 6,
};
#endif
KlassFlags _misc_flags;
bool is_generated_shared_class() const {
CDS_ONLY(return (_shared_class_flags & _is_generated_shared_class) != 0;)
NOT_CDS(return false;)
}
+ void set_has_preinitialized_mirror() {
+ CDS_ONLY(_shared_class_flags |= _has_preinitialized_mirror;)
+ }
+ bool has_preinitialized_mirror() const {
+ CDS_ONLY(return (_shared_class_flags & _has_preinitialized_mirror) != 0;)
+ NOT_CDS(return false;)
+ }
+
bool is_shared() const { // shadows MetaspaceObj::is_shared)()
CDS_ONLY(return (_shared_class_flags & _is_shared_class) != 0;)
NOT_CDS(return false;)
}
virtual ArrayKlass* array_klass_or_null() = 0;
virtual oop protection_domain() const = 0;
oop class_loader() const;
+ Symbol* class_loader_name_and_id() const;
inline oop klass_holder() const;
protected:
< prev index next >