< prev index next >

src/hotspot/share/classfile/fieldLayoutBuilder.hpp

Print this page
rev 59083 : DRAFT 8236522: NonTearable marker interface for inline classes to enforce atomicity


 239   const Symbol* _classname;
 240   const InstanceKlass* _super_klass;
 241   ConstantPool* _constant_pool;
 242   Array<u2>* _fields;
 243   FieldLayoutInfo* _info;
 244   FieldGroup* _root_group;
 245   GrowableArray<FieldGroup*> _contended_groups;
 246   FieldGroup* _static_fields;
 247   FieldLayout* _layout;
 248   FieldLayout* _static_layout;
 249   ClassLoaderData* _class_loader_data;
 250   Handle _protection_domain;
 251   int _nonstatic_oopmap_count;
 252   int _alignment;
 253   int _first_field_offset;
 254   int _exact_size_in_bytes;
 255   bool _has_nonstatic_fields;
 256   bool _is_contended;
 257   bool _is_value_type;
 258   bool _has_flattening_information;


 259 
 260   FieldGroup* get_or_create_contended_group(int g);
 261 
 262  public:
 263   FieldLayoutBuilder(const Symbol* classname, const InstanceKlass* super_klass, ConstantPool* constant_pool,
 264       Array<u2>* fields, bool is_contended, bool is_value_type, ClassLoaderData* class_loader_data,
 265       Handle protection_domain, FieldLayoutInfo* info);
 266 
 267   int get_alignment() {
 268     assert(_alignment != -1, "Uninitialized");
 269     return _alignment;
 270   }
 271 
 272   int get_first_field_offset() {
 273     assert(_first_field_offset != -1, "Uninitialized");
 274     return _first_field_offset;
 275   }
 276 
 277   int get_exact_size_in_byte() {
 278     assert(_exact_size_in_bytes != -1, "Uninitialized");


 239   const Symbol* _classname;
 240   const InstanceKlass* _super_klass;
 241   ConstantPool* _constant_pool;
 242   Array<u2>* _fields;
 243   FieldLayoutInfo* _info;
 244   FieldGroup* _root_group;
 245   GrowableArray<FieldGroup*> _contended_groups;
 246   FieldGroup* _static_fields;
 247   FieldLayout* _layout;
 248   FieldLayout* _static_layout;
 249   ClassLoaderData* _class_loader_data;
 250   Handle _protection_domain;
 251   int _nonstatic_oopmap_count;
 252   int _alignment;
 253   int _first_field_offset;
 254   int _exact_size_in_bytes;
 255   bool _has_nonstatic_fields;
 256   bool _is_contended;
 257   bool _is_value_type;
 258   bool _has_flattening_information;
 259   bool _has_nonatomic_values;
 260   int _atomic_field_count;
 261 
 262   FieldGroup* get_or_create_contended_group(int g);
 263 
 264  public:
 265   FieldLayoutBuilder(const Symbol* classname, const InstanceKlass* super_klass, ConstantPool* constant_pool,
 266       Array<u2>* fields, bool is_contended, bool is_value_type, ClassLoaderData* class_loader_data,
 267       Handle protection_domain, FieldLayoutInfo* info);
 268 
 269   int get_alignment() {
 270     assert(_alignment != -1, "Uninitialized");
 271     return _alignment;
 272   }
 273 
 274   int get_first_field_offset() {
 275     assert(_first_field_offset != -1, "Uninitialized");
 276     return _first_field_offset;
 277   }
 278 
 279   int get_exact_size_in_byte() {
 280     assert(_exact_size_in_bytes != -1, "Uninitialized");
< prev index next >