comparison src/share/vm/utilities/accessFlags.hpp @ 6100:71afdabfd05b

7168280: Eliminate the generic signature index slot from field array for field without generic signature. Summary: Only allocate the generic signature index slot in the field array for field with generic signature attribute. Reviewed-by: coleenp, dlong
author jiangli
date Mon, 21 May 2012 14:10:35 -0400
parents e6b1331a51d2
children 1d7922586cf6
comparison
equal deleted inserted replaced
6069:03d61caacd1e 6100:71afdabfd05b
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