< prev index next >

src/share/vm/opto/type.cpp

Print this page

        

@@ -1935,10 +1935,14 @@
 
 //------------------------------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,11 +1974,11 @@
     break;
   case T_VALUETYPE:
     if (ret_vt_fields) {
       ciValueKlass* vk = (ciValueKlass*)return_type;
       uint pos = TypeFunc::Parms;
-      field_array[pos] = TypeKlassPtr::make(vk);
+      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 >