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_HAS_GENERIC_SIGNATURE = 0x00000800, // field has generic signature |
83 |
84 |
84 JVM_ACC_FIELD_INTERNAL_FLAGS = JVM_ACC_FIELD_ACCESS_WATCHED | |
85 JVM_ACC_FIELD_INTERNAL_FLAGS = JVM_ACC_FIELD_ACCESS_WATCHED | |
85 JVM_ACC_FIELD_MODIFICATION_WATCHED | |
86 JVM_ACC_FIELD_MODIFICATION_WATCHED | |
86 JVM_ACC_FIELD_INTERNAL, |
87 JVM_ACC_FIELD_INTERNAL | |
|
88 JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE, |
87 |
89 |
88 // flags accepted by set_field_flags() |
90 // flags accepted by set_field_flags() |
89 JVM_ACC_FIELD_FLAGS = JVM_RECOGNIZED_FIELD_MODIFIERS | JVM_ACC_FIELD_INTERNAL_FLAGS |
91 JVM_ACC_FIELD_FLAGS = JVM_RECOGNIZED_FIELD_MODIFIERS | JVM_ACC_FIELD_INTERNAL_FLAGS |
90 |
92 |
91 }; |
93 }; |
154 // field flags |
156 // field flags |
155 bool is_field_access_watched() const { return (_flags & JVM_ACC_FIELD_ACCESS_WATCHED) != 0; } |
157 bool is_field_access_watched() const { return (_flags & JVM_ACC_FIELD_ACCESS_WATCHED) != 0; } |
156 bool is_field_modification_watched() const |
158 bool is_field_modification_watched() const |
157 { return (_flags & JVM_ACC_FIELD_MODIFICATION_WATCHED) != 0; } |
159 { return (_flags & JVM_ACC_FIELD_MODIFICATION_WATCHED) != 0; } |
158 bool is_internal() const { return (_flags & JVM_ACC_FIELD_INTERNAL) != 0; } |
160 bool is_internal() const { return (_flags & JVM_ACC_FIELD_INTERNAL) != 0; } |
|
161 bool field_has_generic_signature() const |
|
162 { return (_flags & JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE) != 0; } |
159 |
163 |
160 // get .class file flags |
164 // get .class file flags |
161 jint get_flags () const { return (_flags & JVM_ACC_WRITTEN_FLAGS); } |
165 jint get_flags () const { return (_flags & JVM_ACC_WRITTEN_FLAGS); } |
162 |
166 |
163 // Initialization |
167 // Initialization |
223 atomic_set_bits(JVM_ACC_FIELD_MODIFICATION_WATCHED); |
227 atomic_set_bits(JVM_ACC_FIELD_MODIFICATION_WATCHED); |
224 } else { |
228 } else { |
225 atomic_clear_bits(JVM_ACC_FIELD_MODIFICATION_WATCHED); |
229 atomic_clear_bits(JVM_ACC_FIELD_MODIFICATION_WATCHED); |
226 } |
230 } |
227 } |
231 } |
|
232 void set_field_has_generic_signature() |
|
233 { |
|
234 atomic_set_bits(JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE); |
|
235 } |
228 |
236 |
229 // Conversion |
237 // Conversion |
230 jshort as_short() const { return (jshort)_flags; } |
238 jshort as_short() const { return (jshort)_flags; } |
231 jint as_int() const { return _flags; } |
239 jint as_int() const { return _flags; } |
232 |
240 |