168 set_secondary_super_cache(NULL);
169 _primary_supers[0] = k;
170 set_super_check_offset(in_bytes(primary_supers_offset()));
171
172 // The constructor is used from init_self_patching_vtbl_list,
173 // which doesn't zero out the memory before calling the constructor.
174 // Need to set the field explicitly to not hit an assert that the field
175 // should be NULL before setting it.
176 _java_mirror = NULL;
177
178 set_modifier_flags(0);
179 set_layout_helper(Klass::_lh_neutral_value);
180 set_name(NULL);
181 AccessFlags af;
182 af.set_flags(0);
183 set_access_flags(af);
184 set_subklass(NULL);
185 set_next_sibling(NULL);
186 set_next_link(NULL);
187 TRACE_INIT_ID(this);
188
189 set_prototype_header(markOopDesc::prototype());
190 set_biased_lock_revocation_count(0);
191 set_last_biased_lock_bulk_revocation_time(0);
192
193 // The klass doesn't have any references at this point.
194 clear_modified_oops();
195 clear_accumulated_modified_oops();
196 _shared_class_path_index = -1;
197 }
198
199 jint Klass::array_layout_helper(BasicType etype) {
200 assert(etype >= T_BOOLEAN && etype <= T_OBJECT, "valid etype");
201 // Note that T_ARRAY is not allowed here.
202 int hsize = arrayOopDesc::base_offset_in_bytes(etype);
203 int esize = type2aelembytes(etype);
204 bool isobj = (etype == T_OBJECT);
205 int tag = isobj ? _lh_array_tag_obj_value : _lh_array_tag_type_value;
206 int lh = array_layout_helper(tag, hsize, etype, exact_log2(esize));
207
|
168 set_secondary_super_cache(NULL);
169 _primary_supers[0] = k;
170 set_super_check_offset(in_bytes(primary_supers_offset()));
171
172 // The constructor is used from init_self_patching_vtbl_list,
173 // which doesn't zero out the memory before calling the constructor.
174 // Need to set the field explicitly to not hit an assert that the field
175 // should be NULL before setting it.
176 _java_mirror = NULL;
177
178 set_modifier_flags(0);
179 set_layout_helper(Klass::_lh_neutral_value);
180 set_name(NULL);
181 AccessFlags af;
182 af.set_flags(0);
183 set_access_flags(af);
184 set_subklass(NULL);
185 set_next_sibling(NULL);
186 set_next_link(NULL);
187 TRACE_INIT_ID(this);
188 EVTRACE_INIT_TRACKED_CLASS;
189
190 set_prototype_header(markOopDesc::prototype());
191 set_biased_lock_revocation_count(0);
192 set_last_biased_lock_bulk_revocation_time(0);
193
194 // The klass doesn't have any references at this point.
195 clear_modified_oops();
196 clear_accumulated_modified_oops();
197 _shared_class_path_index = -1;
198 }
199
200 jint Klass::array_layout_helper(BasicType etype) {
201 assert(etype >= T_BOOLEAN && etype <= T_OBJECT, "valid etype");
202 // Note that T_ARRAY is not allowed here.
203 int hsize = arrayOopDesc::base_offset_in_bytes(etype);
204 int esize = type2aelembytes(etype);
205 bool isobj = (etype == T_OBJECT);
206 int tag = isobj ? _lh_array_tag_obj_value : _lh_array_tag_type_value;
207 int lh = array_layout_helper(tag, hsize, etype, exact_log2(esize));
208
|