< prev index next >

src/hotspot/share/utilities/accessFlags.hpp

Print this page
rev 55127 : 8223351: [lworld] Primary mirror and nullable mirror for inline type
Reviewed-by: tbd


  68   JVM_ACC_IS_SHARED_CLASS         = 0x02000000,     // True if klass is shared
  69 
  70   // Klass* and Method* flags
  71   JVM_ACC_HAS_LOCAL_VARIABLE_TABLE= 0x00200000,
  72 
  73   JVM_ACC_PROMOTED_FLAGS          = 0x00200000,     // flags promoted from methods to the holding klass
  74 
  75   // field flags
  76   // Note: these flags must be defined in the low order 16 bits because
  77   // InstanceKlass only stores a ushort worth of information from the
  78   // AccessFlags value.
  79   // These bits must not conflict with any other field-related access flags
  80   // (e.g., ACC_ENUM).
  81   // Note that the class-related ACC_ANNOTATION bit conflicts with these flags.
  82   JVM_ACC_FIELD_ACCESS_WATCHED            = 0x00002000, // field access is watched by JVMTI
  83   JVM_ACC_FIELD_MODIFICATION_WATCHED      = 0x00008000, // field modification is watched by JVMTI
  84   JVM_ACC_FIELD_INTERNAL                  = 0x00000400, // internal field, same as JVM_ACC_ABSTRACT
  85   JVM_ACC_FIELD_STABLE                    = 0x00000020, // @Stable field, same as JVM_ACC_SYNCHRONIZED and JVM_ACC_SUPER
  86   JVM_ACC_FIELD_INITIALIZED_FINAL_UPDATE  = 0x00000200, // (static) final field updated outside (class) initializer, same as JVM_ACC_NATIVE
  87   JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE     = 0x00000800, // field has generic signature
  88   /* JVM_ACC_FLATTENABLE                     = 0x00000100, */ // To be enabled when ACC_FLATTENABLE is removed from java.base
  89   JVM_ACC_FIELD_FLATTENED                 = 0x00008000, // flattened value field
  90 
  91   JVM_ACC_FIELD_INTERNAL_FLAGS       = JVM_ACC_FIELD_ACCESS_WATCHED |
  92                                        JVM_ACC_FIELD_MODIFICATION_WATCHED |
  93                                        JVM_ACC_FIELD_INTERNAL |
  94                                        JVM_ACC_FIELD_STABLE |
  95                                        JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE |
  96                                        JVM_ACC_FLATTENABLE |

  97                                        JVM_ACC_FIELD_FLATTENED,
  98 
  99                                                     // flags accepted by set_field_flags()
 100   JVM_ACC_FIELD_FLAGS                = JVM_RECOGNIZED_FIELD_MODIFIERS | JVM_ACC_FIELD_INTERNAL_FLAGS
 101 
 102 };
 103 
 104 
 105 class AccessFlags {
 106   friend class VMStructs;
 107  private:
 108   jint _flags;
 109 
 110  public:
 111   AccessFlags() : _flags(0) {}
 112   explicit AccessFlags(jint flags) : _flags(flags) {}
 113 
 114   // Java access flags
 115   bool is_public      () const         { return (_flags & JVM_ACC_PUBLIC      ) != 0; }
 116   bool is_private     () const         { return (_flags & JVM_ACC_PRIVATE     ) != 0; }




  68   JVM_ACC_IS_SHARED_CLASS         = 0x02000000,     // True if klass is shared
  69 
  70   // Klass* and Method* flags
  71   JVM_ACC_HAS_LOCAL_VARIABLE_TABLE= 0x00200000,
  72 
  73   JVM_ACC_PROMOTED_FLAGS          = 0x00200000,     // flags promoted from methods to the holding klass
  74 
  75   // field flags
  76   // Note: these flags must be defined in the low order 16 bits because
  77   // InstanceKlass only stores a ushort worth of information from the
  78   // AccessFlags value.
  79   // These bits must not conflict with any other field-related access flags
  80   // (e.g., ACC_ENUM).
  81   // Note that the class-related ACC_ANNOTATION bit conflicts with these flags.
  82   JVM_ACC_FIELD_ACCESS_WATCHED            = 0x00002000, // field access is watched by JVMTI
  83   JVM_ACC_FIELD_MODIFICATION_WATCHED      = 0x00008000, // field modification is watched by JVMTI
  84   JVM_ACC_FIELD_INTERNAL                  = 0x00000400, // internal field, same as JVM_ACC_ABSTRACT
  85   JVM_ACC_FIELD_STABLE                    = 0x00000020, // @Stable field, same as JVM_ACC_SYNCHRONIZED and JVM_ACC_SUPER
  86   JVM_ACC_FIELD_INITIALIZED_FINAL_UPDATE  = 0x00000200, // (static) final field updated outside (class) initializer, same as JVM_ACC_NATIVE
  87   JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE     = 0x00000800, // field has generic signature
  88   JVM_ACC_FIELD_FLATTENABLE               = 0x00004000, // flattenable field
  89   JVM_ACC_FIELD_FLATTENED                 = 0x00008000, // flattened field
  90 
  91   JVM_ACC_FIELD_INTERNAL_FLAGS       = JVM_ACC_FIELD_ACCESS_WATCHED |
  92                                        JVM_ACC_FIELD_MODIFICATION_WATCHED |
  93                                        JVM_ACC_FIELD_INTERNAL |
  94                                        JVM_ACC_FIELD_STABLE |
  95                                        JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE |
  96                                        JVM_ACC_FLATTENABLE |
  97                                        JVM_ACC_FIELD_FLATTENABLE |
  98                                        JVM_ACC_FIELD_FLATTENED,
  99 
 100                                                     // flags accepted by set_field_flags()
 101   JVM_ACC_FIELD_FLAGS                = JVM_RECOGNIZED_FIELD_MODIFIERS | JVM_ACC_FIELD_INTERNAL_FLAGS
 102 
 103 };
 104 
 105 
 106 class AccessFlags {
 107   friend class VMStructs;
 108  private:
 109   jint _flags;
 110 
 111  public:
 112   AccessFlags() : _flags(0) {}
 113   explicit AccessFlags(jint flags) : _flags(flags) {}
 114 
 115   // Java access flags
 116   bool is_public      () const         { return (_flags & JVM_ACC_PUBLIC      ) != 0; }
 117   bool is_private     () const         { return (_flags & JVM_ACC_PRIVATE     ) != 0; }


< prev index next >