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