127 #endif
128 ShouldNotReachHere();
129 return NULL;
130 }
131
132 klassOop Klass::base_create_klass_oop(KlassHandle& klass, int size,
133 const Klass_vtbl& vtbl, TRAPS) {
134 size = align_object_size(size);
135 // allocate and initialize vtable
136 Klass* kl = (Klass*) vtbl.allocate_permanent(klass, size, CHECK_NULL);
137 klassOop k = kl->as_klassOop();
138
139 { // Preinitialize supertype information.
140 // A later call to initialize_supers() may update these settings:
141 kl->set_super(NULL);
142 for (juint i = 0; i < Klass::primary_super_limit(); i++) {
143 kl->_primary_supers[i] = NULL;
144 }
145 kl->set_secondary_supers(NULL);
146 oop_store_without_check((oop*) &kl->_primary_supers[0], k);
147 kl->set_super_check_offset(primary_supers_offset_in_bytes() + sizeof(oopDesc));
148 }
149
150 kl->set_java_mirror(NULL);
151 kl->set_modifier_flags(0);
152 kl->set_layout_helper(Klass::_lh_neutral_value);
153 kl->set_name(NULL);
154 AccessFlags af;
155 af.set_flags(0);
156 kl->set_access_flags(af);
157 kl->set_subklass(NULL);
158 kl->set_next_sibling(NULL);
159 kl->set_alloc_count(0);
160 kl->set_alloc_size(0);
161
162 kl->set_prototype_header(markOopDesc::prototype());
163 kl->set_biased_lock_revocation_count(0);
164 kl->set_last_biased_lock_bulk_revocation_time(0);
165
166 return k;
167 }
|
127 #endif
128 ShouldNotReachHere();
129 return NULL;
130 }
131
132 klassOop Klass::base_create_klass_oop(KlassHandle& klass, int size,
133 const Klass_vtbl& vtbl, TRAPS) {
134 size = align_object_size(size);
135 // allocate and initialize vtable
136 Klass* kl = (Klass*) vtbl.allocate_permanent(klass, size, CHECK_NULL);
137 klassOop k = kl->as_klassOop();
138
139 { // Preinitialize supertype information.
140 // A later call to initialize_supers() may update these settings:
141 kl->set_super(NULL);
142 for (juint i = 0; i < Klass::primary_super_limit(); i++) {
143 kl->_primary_supers[i] = NULL;
144 }
145 kl->set_secondary_supers(NULL);
146 oop_store_without_check((oop*) &kl->_primary_supers[0], k);
147 kl->set_super_check_offset(primary_supers_offset_in_bytes());
148 }
149
150 kl->set_java_mirror(NULL);
151 kl->set_modifier_flags(0);
152 kl->set_layout_helper(Klass::_lh_neutral_value);
153 kl->set_name(NULL);
154 AccessFlags af;
155 af.set_flags(0);
156 kl->set_access_flags(af);
157 kl->set_subklass(NULL);
158 kl->set_next_sibling(NULL);
159 kl->set_alloc_count(0);
160 kl->set_alloc_size(0);
161
162 kl->set_prototype_header(markOopDesc::prototype());
163 kl->set_biased_lock_revocation_count(0);
164 kl->set_last_biased_lock_bulk_revocation_time(0);
165
166 return k;
167 }
|