hotspot/src/share/vm/utilities/accessFlags.hpp
changeset 39421 a9652c919db8
parent 37466 287c4ebd11b0
child 46413 b0f67ec8f6be
equal deleted inserted replaced
39420:987528901b83 39421:a9652c919db8
    75   // InstanceKlass only stores a ushort worth of information from the
    75   // InstanceKlass only stores a ushort worth of information from the
    76   // AccessFlags value.
    76   // AccessFlags value.
    77   // These bits must not conflict with any other field-related access flags
    77   // These bits must not conflict with any other field-related access flags
    78   // (e.g., ACC_ENUM).
    78   // (e.g., ACC_ENUM).
    79   // Note that the class-related ACC_ANNOTATION bit conflicts with these flags.
    79   // Note that the class-related ACC_ANNOTATION bit conflicts with these flags.
    80   JVM_ACC_FIELD_ACCESS_WATCHED       = 0x00002000,  // field access is watched by JVMTI
    80   JVM_ACC_FIELD_ACCESS_WATCHED            = 0x00002000, // field access is watched by JVMTI
    81   JVM_ACC_FIELD_MODIFICATION_WATCHED = 0x00008000,  // field modification is watched by JVMTI
    81   JVM_ACC_FIELD_MODIFICATION_WATCHED      = 0x00008000, // field modification is watched by JVMTI
    82   JVM_ACC_FIELD_INTERNAL             = 0x00000400,  // internal field, same as JVM_ACC_ABSTRACT
    82   JVM_ACC_FIELD_INTERNAL                  = 0x00000400, // internal field, same as JVM_ACC_ABSTRACT
    83   JVM_ACC_FIELD_STABLE               = 0x00000020,  // @Stable field, same as JVM_ACC_SYNCHRONIZED
    83   JVM_ACC_FIELD_STABLE                    = 0x00000020, // @Stable field, same as JVM_ACC_SYNCHRONIZED and JVM_ACC_SUPER
    84   JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE = 0x00000800, // field has generic signature
    84   JVM_ACC_FIELD_INITIALIZED_FINAL_UPDATE  = 0x00000100, // (static) final field updated outside (class) initializer, same as JVM_ACC_NATIVE
       
    85   JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE     = 0x00000800, // field has generic signature
    85 
    86 
    86   JVM_ACC_FIELD_INTERNAL_FLAGS       = JVM_ACC_FIELD_ACCESS_WATCHED |
    87   JVM_ACC_FIELD_INTERNAL_FLAGS       = JVM_ACC_FIELD_ACCESS_WATCHED |
    87                                        JVM_ACC_FIELD_MODIFICATION_WATCHED |
    88                                        JVM_ACC_FIELD_MODIFICATION_WATCHED |
    88                                        JVM_ACC_FIELD_INTERNAL |
    89                                        JVM_ACC_FIELD_INTERNAL |
    89                                        JVM_ACC_FIELD_STABLE |
    90                                        JVM_ACC_FIELD_STABLE |
   152 
   153 
   153   // field flags
   154   // field flags
   154   bool is_field_access_watched() const  { return (_flags & JVM_ACC_FIELD_ACCESS_WATCHED) != 0; }
   155   bool is_field_access_watched() const  { return (_flags & JVM_ACC_FIELD_ACCESS_WATCHED) != 0; }
   155   bool is_field_modification_watched() const
   156   bool is_field_modification_watched() const
   156                                         { return (_flags & JVM_ACC_FIELD_MODIFICATION_WATCHED) != 0; }
   157                                         { return (_flags & JVM_ACC_FIELD_MODIFICATION_WATCHED) != 0; }
       
   158   bool has_field_initialized_final_update() const
       
   159                                         { return (_flags & JVM_ACC_FIELD_INITIALIZED_FINAL_UPDATE) != 0; }
   157   bool on_stack() const                 { return (_flags & JVM_ACC_ON_STACK) != 0; }
   160   bool on_stack() const                 { return (_flags & JVM_ACC_ON_STACK) != 0; }
   158   bool is_internal() const              { return (_flags & JVM_ACC_FIELD_INTERNAL) != 0; }
   161   bool is_internal() const              { return (_flags & JVM_ACC_FIELD_INTERNAL) != 0; }
   159   bool is_stable() const                { return (_flags & JVM_ACC_FIELD_STABLE) != 0; }
   162   bool is_stable() const                { return (_flags & JVM_ACC_FIELD_STABLE) != 0; }
   160   bool field_has_generic_signature() const
   163   bool field_has_generic_signature() const
   161                                         { return (_flags & JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE) != 0; }
   164                                         { return (_flags & JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE) != 0; }
   230                                            atomic_set_bits(JVM_ACC_FIELD_MODIFICATION_WATCHED);
   233                                            atomic_set_bits(JVM_ACC_FIELD_MODIFICATION_WATCHED);
   231                                          } else {
   234                                          } else {
   232                                            atomic_clear_bits(JVM_ACC_FIELD_MODIFICATION_WATCHED);
   235                                            atomic_clear_bits(JVM_ACC_FIELD_MODIFICATION_WATCHED);
   233                                          }
   236                                          }
   234                                        }
   237                                        }
       
   238 
       
   239   void set_has_field_initialized_final_update(const bool value) {
       
   240     if (value) {
       
   241       atomic_set_bits(JVM_ACC_FIELD_INITIALIZED_FINAL_UPDATE);
       
   242     } else {
       
   243       atomic_clear_bits(JVM_ACC_FIELD_INITIALIZED_FINAL_UPDATE);
       
   244     }
       
   245   }
       
   246 
   235   void set_field_has_generic_signature()
   247   void set_field_has_generic_signature()
   236                                        {
   248                                        {
   237                                          atomic_set_bits(JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE);
   249                                          atomic_set_bits(JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE);
   238                                        }
   250                                        }
   239 
   251