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