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