142 // class attributes parsed before the instance klass is created:
143 bool _synthetic_flag;
144 int _sde_length;
145 const char* _sde_buffer;
146 u2 _sourcefile_index;
147 u2 _generic_signature_index;
148
149 u2 _major_version;
150 u2 _minor_version;
151 u2 _this_class_index;
152 u2 _super_class_index;
153 u2 _itfs_len;
154 u2 _java_fields_count;
155
156 bool _need_verify;
157 bool _relax_verify;
158
159 bool _has_nonstatic_concrete_methods;
160 bool _declares_nonstatic_concrete_methods;
161 bool _has_final_method;
162 bool _has_value_fields;
163
164 // precomputed flags
165 bool _has_finalizer;
166 bool _has_empty_finalizer;
167 bool _has_vanilla_constructor;
168 int _max_bootstrap_specifier_index; // detects BSS values
169
170 void parse_stream(const ClassFileStream* const stream, TRAPS);
171
172 void post_process_parsed_stream(const ClassFileStream* const stream,
173 ConstantPool* cp,
174 TRAPS);
175
176 void prepend_host_package_name(const InstanceKlass* host_klass, TRAPS);
177 void fix_anonymous_class_name(TRAPS);
178
179 void fill_instance_klass(InstanceKlass* ik, bool cf_changed_in_CFLH, TRAPS);
180 void set_klass(InstanceKlass* instance);
181
182 void set_class_bad_constant_seen(short bad_constant);
526 InstanceKlass* create_instance_klass(bool cf_changed_in_CFLH, TRAPS);
527
528 const ClassFileStream* clone_stream() const;
529
530 void set_klass_to_deallocate(InstanceKlass* klass);
531
532 int static_field_size() const;
533 int total_oop_map_count() const;
534 jint layout_size() const;
535
536 int vtable_size() const { return _vtable_size; }
537 int itable_size() const { return _itable_size; }
538
539 u2 this_class_index() const { return _this_class_index; }
540 u2 super_class_index() const { return _super_class_index; }
541
542 bool is_anonymous() const { return _host_klass != NULL; }
543 bool is_interface() const { return _access_flags.is_interface(); }
544 bool is_value_type() const { return _access_flags.is_value_type(); }
545 bool is_value_capable_class() const;
546 bool has_value_fields() const { return _has_value_fields; }
547
548 u2 java_fields_count() const { return _java_fields_count; }
549
550 const InstanceKlass* host_klass() const { return _host_klass; }
551 const GrowableArray<Handle>* cp_patches() const { return _cp_patches; }
552 ClassLoaderData* loader_data() const { return _loader_data; }
553 const Symbol* class_name() const { return _class_name; }
554 const Klass* super_klass() const { return _super_klass; }
555
556 ReferenceType reference_type() const { return _rt; }
557 AccessFlags access_flags() const { return _access_flags; }
558
559 bool is_internal() const { return INTERNAL == _pub_level; }
560
561 static bool verify_unqualified_name(const char* name, unsigned int length, int type);
562
563 #ifdef ASSERT
564 static bool is_internal_format(Symbol* class_name);
565 #endif
566
|
142 // class attributes parsed before the instance klass is created:
143 bool _synthetic_flag;
144 int _sde_length;
145 const char* _sde_buffer;
146 u2 _sourcefile_index;
147 u2 _generic_signature_index;
148
149 u2 _major_version;
150 u2 _minor_version;
151 u2 _this_class_index;
152 u2 _super_class_index;
153 u2 _itfs_len;
154 u2 _java_fields_count;
155
156 bool _need_verify;
157 bool _relax_verify;
158
159 bool _has_nonstatic_concrete_methods;
160 bool _declares_nonstatic_concrete_methods;
161 bool _has_final_method;
162 bool _has_flattenable_fields;
163
164 // precomputed flags
165 bool _has_finalizer;
166 bool _has_empty_finalizer;
167 bool _has_vanilla_constructor;
168 int _max_bootstrap_specifier_index; // detects BSS values
169
170 void parse_stream(const ClassFileStream* const stream, TRAPS);
171
172 void post_process_parsed_stream(const ClassFileStream* const stream,
173 ConstantPool* cp,
174 TRAPS);
175
176 void prepend_host_package_name(const InstanceKlass* host_klass, TRAPS);
177 void fix_anonymous_class_name(TRAPS);
178
179 void fill_instance_klass(InstanceKlass* ik, bool cf_changed_in_CFLH, TRAPS);
180 void set_klass(InstanceKlass* instance);
181
182 void set_class_bad_constant_seen(short bad_constant);
526 InstanceKlass* create_instance_klass(bool cf_changed_in_CFLH, TRAPS);
527
528 const ClassFileStream* clone_stream() const;
529
530 void set_klass_to_deallocate(InstanceKlass* klass);
531
532 int static_field_size() const;
533 int total_oop_map_count() const;
534 jint layout_size() const;
535
536 int vtable_size() const { return _vtable_size; }
537 int itable_size() const { return _itable_size; }
538
539 u2 this_class_index() const { return _this_class_index; }
540 u2 super_class_index() const { return _super_class_index; }
541
542 bool is_anonymous() const { return _host_klass != NULL; }
543 bool is_interface() const { return _access_flags.is_interface(); }
544 bool is_value_type() const { return _access_flags.is_value_type(); }
545 bool is_value_capable_class() const;
546 bool has_flattenable_fields() const { return _has_flattenable_fields; }
547
548 u2 java_fields_count() const { return _java_fields_count; }
549
550 const InstanceKlass* host_klass() const { return _host_klass; }
551 const GrowableArray<Handle>* cp_patches() const { return _cp_patches; }
552 ClassLoaderData* loader_data() const { return _loader_data; }
553 const Symbol* class_name() const { return _class_name; }
554 const Klass* super_klass() const { return _super_klass; }
555
556 ReferenceType reference_type() const { return _rt; }
557 AccessFlags access_flags() const { return _access_flags; }
558
559 bool is_internal() const { return INTERNAL == _pub_level; }
560
561 static bool verify_unqualified_name(const char* name, unsigned int length, int type);
562
563 #ifdef ASSERT
564 static bool is_internal_format(Symbol* class_name);
565 #endif
566
|