comparison src/share/vm/utilities/accessFlags.hpp @ 6275:957c266d8bc5

Merge with http://hg.openjdk.java.net/hsx/hsx24/hotspot/
author Doug Simon <doug.simon@oracle.com>
date Tue, 21 Aug 2012 10:39:19 +0200
parents 1d7922586cf6
children da91efe96a93
comparison
equal deleted inserted replaced
5891:fd8832ae511d 6275:957c266d8bc5
53 JVM_ACC_HAS_JSRS = 0x00800000, 53 JVM_ACC_HAS_JSRS = 0x00800000,
54 JVM_ACC_IS_OLD = 0x00010000, // RedefineClasses() has replaced this method 54 JVM_ACC_IS_OLD = 0x00010000, // RedefineClasses() has replaced this method
55 JVM_ACC_IS_OBSOLETE = 0x00020000, // RedefineClasses() has made method obsolete 55 JVM_ACC_IS_OBSOLETE = 0x00020000, // RedefineClasses() has made method obsolete
56 JVM_ACC_IS_PREFIXED_NATIVE = 0x00040000, // JVMTI has prefixed this native method 56 JVM_ACC_IS_PREFIXED_NATIVE = 0x00040000, // JVMTI has prefixed this native method
57 57
58 JVM_MH_INVOKE_BITS // = 0x10001100 // MethodHandle.invoke quasi-native
59 = (JVM_ACC_NATIVE | JVM_ACC_SYNTHETIC | JVM_ACC_MONITOR_MATCH),
60
61 // klassOop flags 58 // klassOop flags
62 JVM_ACC_HAS_MIRANDA_METHODS = 0x10000000, // True if this class has miranda methods in it's vtable 59 JVM_ACC_HAS_MIRANDA_METHODS = 0x10000000, // True if this class has miranda methods in it's vtable
63 JVM_ACC_HAS_VANILLA_CONSTRUCTOR = 0x20000000, // True if klass has a vanilla default constructor 60 JVM_ACC_HAS_VANILLA_CONSTRUCTOR = 0x20000000, // True if klass has a vanilla default constructor
64 JVM_ACC_HAS_FINALIZER = 0x40000000, // True if klass has a non-empty finalize() method 61 JVM_ACC_HAS_FINALIZER = 0x40000000, // True if klass has a non-empty finalize() method
65 JVM_ACC_IS_CLONEABLE = (int)0x80000000,// True if klass supports the Clonable interface 62 JVM_ACC_IS_CLONEABLE = (int)0x80000000,// True if klass supports the Clonable interface
78 // (e.g., ACC_ENUM). 75 // (e.g., ACC_ENUM).
79 // Note that the class-related ACC_ANNOTATION bit conflicts with these flags. 76 // 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 77 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 78 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 79 JVM_ACC_FIELD_INTERNAL = 0x00000400, // internal field, same as JVM_ACC_ABSTRACT
80 JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE = 0x00000800, // field has generic signature
83 81
84 JVM_ACC_FIELD_INTERNAL_FLAGS = JVM_ACC_FIELD_ACCESS_WATCHED | 82 JVM_ACC_FIELD_INTERNAL_FLAGS = JVM_ACC_FIELD_ACCESS_WATCHED |
85 JVM_ACC_FIELD_MODIFICATION_WATCHED | 83 JVM_ACC_FIELD_MODIFICATION_WATCHED |
86 JVM_ACC_FIELD_INTERNAL, 84 JVM_ACC_FIELD_INTERNAL |
85 JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE,
87 86
88 // flags accepted by set_field_flags() 87 // flags accepted by set_field_flags()
89 JVM_ACC_FIELD_FLAGS = JVM_RECOGNIZED_FIELD_MODIFIERS | JVM_ACC_FIELD_INTERNAL_FLAGS 88 JVM_ACC_FIELD_FLAGS = JVM_RECOGNIZED_FIELD_MODIFIERS | JVM_ACC_FIELD_INTERNAL_FLAGS
90 89
91 }; 90 };
129 bool has_jsrs () const { return (_flags & JVM_ACC_HAS_JSRS ) != 0; } 128 bool has_jsrs () const { return (_flags & JVM_ACC_HAS_JSRS ) != 0; }
130 bool is_old () const { return (_flags & JVM_ACC_IS_OLD ) != 0; } 129 bool is_old () const { return (_flags & JVM_ACC_IS_OLD ) != 0; }
131 bool is_obsolete () const { return (_flags & JVM_ACC_IS_OBSOLETE ) != 0; } 130 bool is_obsolete () const { return (_flags & JVM_ACC_IS_OBSOLETE ) != 0; }
132 bool is_prefixed_native () const { return (_flags & JVM_ACC_IS_PREFIXED_NATIVE ) != 0; } 131 bool is_prefixed_native () const { return (_flags & JVM_ACC_IS_PREFIXED_NATIVE ) != 0; }
133 132
134 // JSR 292: A method of the form MethodHandle.invoke(A...)R method is
135 // neither bytecoded nor a JNI native, but rather a fast call through
136 // a lightweight method handle object. Because it is not bytecoded,
137 // it has the native bit set, but the monitor-match bit is also set
138 // to distinguish it from a JNI native (which never has the match bit set).
139 // The synthetic bit is also present, because such a method is never
140 // explicitly defined in Java code.
141 bool is_method_handle_invoke () const { return (_flags & JVM_MH_INVOKE_BITS) == JVM_MH_INVOKE_BITS; }
142
143 // klassOop flags 133 // klassOop flags
144 bool has_miranda_methods () const { return (_flags & JVM_ACC_HAS_MIRANDA_METHODS ) != 0; } 134 bool has_miranda_methods () const { return (_flags & JVM_ACC_HAS_MIRANDA_METHODS ) != 0; }
145 bool has_vanilla_constructor () const { return (_flags & JVM_ACC_HAS_VANILLA_CONSTRUCTOR) != 0; } 135 bool has_vanilla_constructor () const { return (_flags & JVM_ACC_HAS_VANILLA_CONSTRUCTOR) != 0; }
146 bool has_finalizer () const { return (_flags & JVM_ACC_HAS_FINALIZER ) != 0; } 136 bool has_finalizer () const { return (_flags & JVM_ACC_HAS_FINALIZER ) != 0; }
147 bool has_final_method () const { return (_flags & JVM_ACC_HAS_FINAL_METHOD ) != 0; } 137 bool has_final_method () const { return (_flags & JVM_ACC_HAS_FINAL_METHOD ) != 0; }
154 // field flags 144 // field flags
155 bool is_field_access_watched() const { return (_flags & JVM_ACC_FIELD_ACCESS_WATCHED) != 0; } 145 bool is_field_access_watched() const { return (_flags & JVM_ACC_FIELD_ACCESS_WATCHED) != 0; }
156 bool is_field_modification_watched() const 146 bool is_field_modification_watched() const
157 { return (_flags & JVM_ACC_FIELD_MODIFICATION_WATCHED) != 0; } 147 { return (_flags & JVM_ACC_FIELD_MODIFICATION_WATCHED) != 0; }
158 bool is_internal() const { return (_flags & JVM_ACC_FIELD_INTERNAL) != 0; } 148 bool is_internal() const { return (_flags & JVM_ACC_FIELD_INTERNAL) != 0; }
149 bool field_has_generic_signature() const
150 { return (_flags & JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE) != 0; }
159 151
160 // get .class file flags 152 // get .class file flags
161 jint get_flags () const { return (_flags & JVM_ACC_WRITTEN_FLAGS); } 153 jint get_flags () const { return (_flags & JVM_ACC_WRITTEN_FLAGS); }
162 154
163 // Initialization 155 // Initialization
223 atomic_set_bits(JVM_ACC_FIELD_MODIFICATION_WATCHED); 215 atomic_set_bits(JVM_ACC_FIELD_MODIFICATION_WATCHED);
224 } else { 216 } else {
225 atomic_clear_bits(JVM_ACC_FIELD_MODIFICATION_WATCHED); 217 atomic_clear_bits(JVM_ACC_FIELD_MODIFICATION_WATCHED);
226 } 218 }
227 } 219 }
220 void set_field_has_generic_signature()
221 {
222 atomic_set_bits(JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE);
223 }
228 224
229 // Conversion 225 // Conversion
230 jshort as_short() const { return (jshort)_flags; } 226 jshort as_short() const { return (jshort)_flags; }
231 jint as_int() const { return _flags; } 227 jint as_int() const { return _flags; }
232 228