src/share/vm/utilities/accessFlags.hpp

changeset 3137
e6b1331a51d2
parent 2314
f95d63e2154a
child 3803
71afdabfd05b
equal deleted inserted replaced
3136:c565834fb592 3137:e6b1331a51d2
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
83
84 JVM_ACC_FIELD_INTERNAL_FLAGS = JVM_ACC_FIELD_ACCESS_WATCHED |
85 JVM_ACC_FIELD_MODIFICATION_WATCHED |
86 JVM_ACC_FIELD_INTERNAL,
82 87
83 // flags accepted by set_field_flags() 88 // flags accepted by set_field_flags()
84 JVM_ACC_FIELD_FLAGS = 0x00008000 | JVM_ACC_WRITTEN_FLAGS 89 JVM_ACC_FIELD_FLAGS = JVM_RECOGNIZED_FIELD_MODIFIERS | JVM_ACC_FIELD_INTERNAL_FLAGS
85 90
86 }; 91 };
87 92
88 93
89 class AccessFlags VALUE_OBJ_CLASS_SPEC { 94 class AccessFlags VALUE_OBJ_CLASS_SPEC {
148 153
149 // field flags 154 // field flags
150 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; }
151 bool is_field_modification_watched() const 156 bool is_field_modification_watched() const
152 { return (_flags & JVM_ACC_FIELD_MODIFICATION_WATCHED) != 0; } 157 { return (_flags & JVM_ACC_FIELD_MODIFICATION_WATCHED) != 0; }
158 bool is_internal() const { return (_flags & JVM_ACC_FIELD_INTERNAL) != 0; }
153 159
154 // get .class file flags 160 // get .class file flags
155 jint get_flags () const { return (_flags & JVM_ACC_WRITTEN_FLAGS); } 161 jint get_flags () const { return (_flags & JVM_ACC_WRITTEN_FLAGS); }
156 162
157 // Initialization 163 // Initialization
158 void add_promoted_flags(jint flags) { _flags |= (flags & JVM_ACC_PROMOTED_FLAGS); } 164 void add_promoted_flags(jint flags) { _flags |= (flags & JVM_ACC_PROMOTED_FLAGS); }
159 void set_field_flags(jint flags) { _flags = (flags & JVM_ACC_FIELD_FLAGS); } 165 void set_field_flags(jint flags) {
166 assert((flags & JVM_ACC_FIELD_FLAGS) == flags, "only recognized flags");
167 _flags = (flags & JVM_ACC_FIELD_FLAGS);
168 }
160 void set_flags(jint flags) { _flags = (flags & JVM_ACC_WRITTEN_FLAGS); } 169 void set_flags(jint flags) { _flags = (flags & JVM_ACC_WRITTEN_FLAGS); }
161 170
162 void set_queued_for_compilation() { atomic_set_bits(JVM_ACC_QUEUED); } 171 void set_queued_for_compilation() { atomic_set_bits(JVM_ACC_QUEUED); }
163 void clear_queued_for_compilation() { atomic_clear_bits(JVM_ACC_QUEUED); } 172 void clear_queued_for_compilation() { atomic_clear_bits(JVM_ACC_QUEUED); }
164 173
216 atomic_clear_bits(JVM_ACC_FIELD_MODIFICATION_WATCHED); 225 atomic_clear_bits(JVM_ACC_FIELD_MODIFICATION_WATCHED);
217 } 226 }
218 } 227 }
219 228
220 // Conversion 229 // Conversion
221 jshort as_short() { return (jshort)_flags; } 230 jshort as_short() const { return (jshort)_flags; }
222 jint as_int() { return _flags; } 231 jint as_int() const { return _flags; }
223 232
224 inline friend AccessFlags accessFlags_from(jint flags); 233 inline friend AccessFlags accessFlags_from(jint flags);
225 234
226 // Printing/debugging 235 // Printing/debugging
227 void print_on(outputStream* st) const PRODUCT_RETURN; 236 void print_on(outputStream* st) const PRODUCT_RETURN;

mercurial