< prev index next >

src/hotspot/share/interpreter/interpreterRuntime.cpp

Print this page




 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);


< prev index next >