165 ->as_instance_klass_klass();
166 ciEnv::_type_array_klass_klass_instance =
167 get(Universe::typeArrayKlassKlassObj())
168 ->as_type_array_klass_klass();
169 ciEnv::_obj_array_klass_klass_instance =
170 get(Universe::objArrayKlassKlassObj())
171 ->as_obj_array_klass_klass();
172
173 #define WK_KLASS_DEFN(name, ignore_s, opt) \
174 if (SystemDictionary::name() != NULL) \
175 ciEnv::_##name = get(SystemDictionary::name())->as_instance_klass();
176
177 WK_KLASSES_DO(WK_KLASS_DEFN)
178 #undef WK_KLASS_DEFN
179
180 for (int len = -1; len != _ci_objects->length(); ) {
181 len = _ci_objects->length();
182 for (int i2 = 0; i2 < len; i2++) {
183 ciObject* obj = _ci_objects->at(i2);
184 if (obj->is_loaded() && obj->is_instance_klass()) {
185 obj->as_instance_klass()->compute_nonstatic_fields();
186 }
187 }
188 }
189
190 ciEnv::_unloaded_cisymbol = ciObjectFactory::get_symbol(vmSymbols::dummy_symbol());
191 // Create dummy instanceKlass and objArrayKlass object and assign them idents
192 ciEnv::_unloaded_ciinstance_klass = new (_arena) ciInstanceKlass(ciEnv::_unloaded_cisymbol, NULL, NULL);
193 init_ident_of(ciEnv::_unloaded_ciinstance_klass);
194 ciEnv::_unloaded_ciobjarrayklass = new (_arena) ciObjArrayKlass(ciEnv::_unloaded_cisymbol, ciEnv::_unloaded_ciinstance_klass, 1);
195 init_ident_of(ciEnv::_unloaded_ciobjarrayklass);
196 assert(ciEnv::_unloaded_ciobjarrayklass->is_obj_array_klass(), "just checking");
197
198 get(Universe::boolArrayKlassObj());
199 get(Universe::charArrayKlassObj());
200 get(Universe::singleArrayKlassObj());
201 get(Universe::doubleArrayKlassObj());
202 get(Universe::byteArrayKlassObj());
203 get(Universe::shortArrayKlassObj());
204 get(Universe::intArrayKlassObj());
205 get(Universe::longArrayKlassObj());
|
165 ->as_instance_klass_klass();
166 ciEnv::_type_array_klass_klass_instance =
167 get(Universe::typeArrayKlassKlassObj())
168 ->as_type_array_klass_klass();
169 ciEnv::_obj_array_klass_klass_instance =
170 get(Universe::objArrayKlassKlassObj())
171 ->as_obj_array_klass_klass();
172
173 #define WK_KLASS_DEFN(name, ignore_s, opt) \
174 if (SystemDictionary::name() != NULL) \
175 ciEnv::_##name = get(SystemDictionary::name())->as_instance_klass();
176
177 WK_KLASSES_DO(WK_KLASS_DEFN)
178 #undef WK_KLASS_DEFN
179
180 for (int len = -1; len != _ci_objects->length(); ) {
181 len = _ci_objects->length();
182 for (int i2 = 0; i2 < len; i2++) {
183 ciObject* obj = _ci_objects->at(i2);
184 if (obj->is_loaded() && obj->is_instance_klass()) {
185 obj->as_instance_klass()->compute_fields();
186 }
187 }
188 }
189
190 ciEnv::_unloaded_cisymbol = ciObjectFactory::get_symbol(vmSymbols::dummy_symbol());
191 // Create dummy instanceKlass and objArrayKlass object and assign them idents
192 ciEnv::_unloaded_ciinstance_klass = new (_arena) ciInstanceKlass(ciEnv::_unloaded_cisymbol, NULL, NULL);
193 init_ident_of(ciEnv::_unloaded_ciinstance_klass);
194 ciEnv::_unloaded_ciobjarrayklass = new (_arena) ciObjArrayKlass(ciEnv::_unloaded_cisymbol, ciEnv::_unloaded_ciinstance_klass, 1);
195 init_ident_of(ciEnv::_unloaded_ciobjarrayklass);
196 assert(ciEnv::_unloaded_ciobjarrayklass->is_obj_array_klass(), "just checking");
197
198 get(Universe::boolArrayKlassObj());
199 get(Universe::charArrayKlassObj());
200 get(Universe::singleArrayKlassObj());
201 get(Universe::doubleArrayKlassObj());
202 get(Universe::byteArrayKlassObj());
203 get(Universe::shortArrayKlassObj());
204 get(Universe::intArrayKlassObj());
205 get(Universe::longArrayKlassObj());
|