< prev index next >
src/share/vm/opto/type.cpp
Print this page
*** 1935,1944 ****
--- 1935,1948 ----
//------------------------------make-------------------------------------------
// Make a TypeTuple from the range of a method signature
const TypeTuple *TypeTuple::make_range(ciSignature* sig, bool ret_vt_fields) {
ciType* return_type = sig->return_type();
+ return make_range(return_type, ret_vt_fields);
+ }
+
+ const TypeTuple *TypeTuple::make_range(ciType* return_type, bool ret_vt_fields) {
uint arg_cnt = 0;
if (ret_vt_fields) {
ret_vt_fields = return_type->is_valuetype() && ((ciValueKlass*)return_type)->can_be_returned_as_fields();
}
if (ret_vt_fields) {
*** 1970,1980 ****
break;
case T_VALUETYPE:
if (ret_vt_fields) {
ciValueKlass* vk = (ciValueKlass*)return_type;
uint pos = TypeFunc::Parms;
! field_array[pos] = TypeKlassPtr::make(vk);
pos++;
collect_value_fields(vk, field_array, pos);
} else {
field_array[TypeFunc::Parms] = get_const_type(return_type);
}
--- 1974,1984 ----
break;
case T_VALUETYPE:
if (ret_vt_fields) {
ciValueKlass* vk = (ciValueKlass*)return_type;
uint pos = TypeFunc::Parms;
! field_array[pos] = TypePtr::BOTTOM;
pos++;
collect_value_fields(vk, field_array, pos);
} else {
field_array[TypeFunc::Parms] = get_const_type(return_type);
}
< prev index next >