< prev index next >

src/hotspot/share/oops/klass.hpp

Print this page
rev 58565 : 8238358: Implementation of JEP 371: Hidden Classes
Reviewed-by: duke
Contributed-by: mandy.chung@oracle.com, lois.foltan@oracle.com, david.holmes@oracle.com, harold.seigel@oracle.com, serguei.spitsyn@oracle.com, alex.buckley@oracle.com, jamsheed.c.m@oracle.com


 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 


< prev index next >