598 AccessFlags access_flags() const { return _access_flags; }
599 void set_access_flags(AccessFlags flags) { _access_flags = flags; }
600
601 bool is_public() const { return _access_flags.is_public(); }
602 bool is_final() const { return _access_flags.is_final(); }
603 bool is_interface() const { return _access_flags.is_interface(); }
604 bool is_abstract() const { return _access_flags.is_abstract(); }
605 bool is_super() const { return _access_flags.is_super(); }
606 bool is_synthetic() const { return _access_flags.is_synthetic(); }
607 void set_is_synthetic() { _access_flags.set_is_synthetic(); }
608 bool has_finalizer() const { return _access_flags.has_finalizer(); }
609 bool has_final_method() const { return _access_flags.has_final_method(); }
610 void set_has_finalizer() { _access_flags.set_has_finalizer(); }
611 void set_has_final_method() { _access_flags.set_has_final_method(); }
612 bool has_vanilla_constructor() const { return _access_flags.has_vanilla_constructor(); }
613 void set_has_vanilla_constructor() { _access_flags.set_has_vanilla_constructor(); }
614 bool has_miranda_methods () const { return access_flags().has_miranda_methods(); }
615 void set_has_miranda_methods() { _access_flags.set_has_miranda_methods(); }
616 bool is_shared() const { return access_flags().is_shared_class(); } // shadows MetaspaceObj::is_shared)()
617 void set_is_shared() { _access_flags.set_is_shared_class(); }
618
619 bool is_cloneable() const;
620 void set_is_cloneable();
621
622 // Biased locking support
623 // Note: the prototype header is always set up to be at least the
624 // prototype markWord. If biased locking is enabled it may further be
625 // biasable and have an epoch.
626 markWord prototype_header() const { return _prototype_header; }
627 // NOTE: once instances of this klass are floating around in the
628 // system, this header must only be updated at a safepoint.
629 // NOTE 2: currently we only ever set the prototype header to the
630 // biasable prototype for instanceKlasses. There is no technical
631 // reason why it could not be done for arrayKlasses aside from
632 // wanting to reduce the initial scope of this optimization. There
633 // are potential problems in setting the bias pattern for
634 // JVM-internal oops.
635 inline void set_prototype_header(markWord header);
636 static ByteSize prototype_header_offset() { return in_ByteSize(offset_of(Klass, _prototype_header)); }
637
|
598 AccessFlags access_flags() const { return _access_flags; }
599 void set_access_flags(AccessFlags flags) { _access_flags = flags; }
600
601 bool is_public() const { return _access_flags.is_public(); }
602 bool is_final() const { return _access_flags.is_final(); }
603 bool is_interface() const { return _access_flags.is_interface(); }
604 bool is_abstract() const { return _access_flags.is_abstract(); }
605 bool is_super() const { return _access_flags.is_super(); }
606 bool is_synthetic() const { return _access_flags.is_synthetic(); }
607 void set_is_synthetic() { _access_flags.set_is_synthetic(); }
608 bool has_finalizer() const { return _access_flags.has_finalizer(); }
609 bool has_final_method() const { return _access_flags.has_final_method(); }
610 void set_has_finalizer() { _access_flags.set_has_finalizer(); }
611 void set_has_final_method() { _access_flags.set_has_final_method(); }
612 bool has_vanilla_constructor() const { return _access_flags.has_vanilla_constructor(); }
613 void set_has_vanilla_constructor() { _access_flags.set_has_vanilla_constructor(); }
614 bool has_miranda_methods () const { return access_flags().has_miranda_methods(); }
615 void set_has_miranda_methods() { _access_flags.set_has_miranda_methods(); }
616 bool is_shared() const { return access_flags().is_shared_class(); } // shadows MetaspaceObj::is_shared)()
617 void set_is_shared() { _access_flags.set_is_shared_class(); }
618 bool is_hidden() const { return access_flags().is_hidden_class(); }
619 void set_is_hidden() { _access_flags.set_is_hidden_class(); }
620 bool is_hidden_weak() const { return access_flags().is_hidden_class() &&
621 class_loader_data()->has_class_mirror_holder(); }
622
623 bool is_cloneable() const;
624 void set_is_cloneable();
625
626 // Biased locking support
627 // Note: the prototype header is always set up to be at least the
628 // prototype markWord. If biased locking is enabled it may further be
629 // biasable and have an epoch.
630 markWord prototype_header() const { return _prototype_header; }
631 // NOTE: once instances of this klass are floating around in the
632 // system, this header must only be updated at a safepoint.
633 // NOTE 2: currently we only ever set the prototype header to the
634 // biasable prototype for instanceKlasses. There is no technical
635 // reason why it could not be done for arrayKlasses aside from
636 // wanting to reduce the initial scope of this optimization. There
637 // are potential problems in setting the bias pattern for
638 // JVM-internal oops.
639 inline void set_prototype_header(markWord header);
640 static ByteSize prototype_header_offset() { return in_ByteSize(offset_of(Klass, _prototype_header)); }
641
|