Mercurial > hg > truffle
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 |