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 |