412 // Out of memory: can't create detailed error message 413 THROW_MSG(vmSymbols::java_lang_NoClassDefFoundError(), className); 414 } else { 415 jio_snprintf(message, msglen, "%s%s", desc, className); 416 THROW_MSG(vmSymbols::java_lang_NoClassDefFoundError(), message); 417 } 418 } 419 JRT_END 420 421 JRT_ENTRY(void, InterpreterRuntime::uninitialized_instance_value_field(JavaThread* thread, oopDesc* obj, int index)) 422 instanceHandle obj_h(THREAD, (instanceOop)obj); 423 InstanceKlass* klass = InstanceKlass::cast(obj_h()->klass()); 424 Klass* field_k = klass->get_value_field_klass_or_null(index); 425 assert(field_k != NULL, "Must have been initialized"); 426 ValueKlass* field_vklass = ValueKlass::cast(field_k); 427 assert(field_vklass->is_initialized(), "Must have been initialized at this point"); 428 instanceOop res = (instanceOop)field_vklass->default_value(); 429 thread->set_vm_result(res); 430 JRT_END 431 432 JRT_ENTRY(void, InterpreterRuntime::write_flattened_value(JavaThread* thread, oopDesc* value, int offset, oopDesc* rcv)) 433 assert(value != NULL, "Sanity check"); 434 assert(oopDesc::is_oop(value), "Sanity check"); 435 assert(oopDesc::is_oop(rcv), "Sanity check"); 436 assert(value->is_value(), "Sanity check"); 437 438 ValueKlass* vklass = ValueKlass::cast(value->klass()); 439 vklass->write_flattened_field(rcv, offset, value, CHECK); 440 JRT_END 441 442 JRT_ENTRY(void, InterpreterRuntime::read_flattened_field(JavaThread* thread, oopDesc* obj, int index, Klass* field_holder)) 443 Handle obj_h(THREAD, obj); 444 445 assert(oopDesc::is_oop(obj), "Sanity check"); 446 447 assert(field_holder->is_instance_klass(), "Sanity check"); 448 InstanceKlass* klass = InstanceKlass::cast(field_holder); 449 450 assert(klass->field_is_flattened(index), "Sanity check"); 451 452 ValueKlass* field_vklass = ValueKlass::cast(klass->get_value_field_klass(index)); 453 assert(field_vklass->is_initialized(), "Must be initialized at this point"); 454 455 oop res = field_vklass->read_flattened_field(obj_h(), klass->field_offset(index), CHECK); 456 thread->set_vm_result(res); 457 JRT_END 458 459 JRT_ENTRY(void, InterpreterRuntime::newarray(JavaThread* thread, BasicType type, jint size)) 460 oop obj = oopFactory::new_typeArray(type, size, CHECK); 461 thread->set_vm_result(obj); | 412 // Out of memory: can't create detailed error message 413 THROW_MSG(vmSymbols::java_lang_NoClassDefFoundError(), className); 414 } else { 415 jio_snprintf(message, msglen, "%s%s", desc, className); 416 THROW_MSG(vmSymbols::java_lang_NoClassDefFoundError(), message); 417 } 418 } 419 JRT_END 420 421 JRT_ENTRY(void, InterpreterRuntime::uninitialized_instance_value_field(JavaThread* thread, oopDesc* obj, int index)) 422 instanceHandle obj_h(THREAD, (instanceOop)obj); 423 InstanceKlass* klass = InstanceKlass::cast(obj_h()->klass()); 424 Klass* field_k = klass->get_value_field_klass_or_null(index); 425 assert(field_k != NULL, "Must have been initialized"); 426 ValueKlass* field_vklass = ValueKlass::cast(field_k); 427 assert(field_vklass->is_initialized(), "Must have been initialized at this point"); 428 instanceOop res = (instanceOop)field_vklass->default_value(); 429 thread->set_vm_result(res); 430 JRT_END 431 432 JRT_ENTRY(void, InterpreterRuntime::read_flattened_field(JavaThread* thread, oopDesc* obj, int index, Klass* field_holder)) 433 Handle obj_h(THREAD, obj); 434 435 assert(oopDesc::is_oop(obj), "Sanity check"); 436 437 assert(field_holder->is_instance_klass(), "Sanity check"); 438 InstanceKlass* klass = InstanceKlass::cast(field_holder); 439 440 assert(klass->field_is_flattened(index), "Sanity check"); 441 442 ValueKlass* field_vklass = ValueKlass::cast(klass->get_value_field_klass(index)); 443 assert(field_vklass->is_initialized(), "Must be initialized at this point"); 444 445 oop res = field_vklass->read_flattened_field(obj_h(), klass->field_offset(index), CHECK); 446 thread->set_vm_result(res); 447 JRT_END 448 449 JRT_ENTRY(void, InterpreterRuntime::newarray(JavaThread* thread, BasicType type, jint size)) 450 oop obj = oopFactory::new_typeArray(type, size, CHECK); 451 thread->set_vm_result(obj); |