< prev index next >
src/hotspot/share/c1/c1_Runtime1.cpp
Print this page
*** 427,439 ****
ValueKlass* vklass = vaklass->element_klass();
// We have a non-empty flattened array, so the element type must have been initialized.
assert(vklass->is_initialized(), "must be");
Handle holder(THREAD, vklass->klass_holder()); // keep the vklass alive
oop obj = vklass->allocate_instance(CHECK);
! void* src = array->value_at_addr(index, vaklass->layout_helper());
vklass->value_store(src, vklass->data_for_oop(obj),
vaklass->element_byte_size(), true, false);
thread->set_vm_result(obj);
JRT_END
--- 427,440 ----
ValueKlass* vklass = vaklass->element_klass();
// We have a non-empty flattened array, so the element type must have been initialized.
assert(vklass->is_initialized(), "must be");
Handle holder(THREAD, vklass->klass_holder()); // keep the vklass alive
+ valueArrayHandle ha(THREAD, array);
oop obj = vklass->allocate_instance(CHECK);
! void* src = ha()->value_at_addr(index, vaklass->layout_helper());
vklass->value_store(src, vklass->data_for_oop(obj),
vaklass->element_byte_size(), true, false);
thread->set_vm_result(obj);
JRT_END
< prev index next >