< prev index next >

hotspot/src/share/vm/opto/type.cpp

Print this page

        

@@ -259,11 +259,15 @@
   case T_ADDRESS:
     assert(type->is_return_address(), "");
     return TypeRawPtr::make((address)(intptr_t)type->as_return_address()->bci());
 
   case T_VALUETYPE:
+    if (type == ciEnv::current()->___Value_klass()) {
+      return TypeValueTypePtr::NOTNULL;
+    } else {
     return TypeValueType::make(type->as_value_klass());
+    }
 
   default:
     // make sure we did not mix up the cases:
     assert(type != ciTypeFlow::StateVector::bottom_type(), "");
     assert(type != ciTypeFlow::StateVector::top_type(), "");

@@ -2388,10 +2392,11 @@
 
 //==============================TypeValueType=======================================
 
 //------------------------------make-------------------------------------------
 const TypeValueType* TypeValueType::make(ciValueKlass* vk) {
+  //assert(vk != ciEnv::current()->___Value_klass(), "sanity");
   return (TypeValueType*)(new TypeValueType(vk))->hashcons();
 }
 
 //------------------------------meet-------------------------------------------
 // Compute the MEET of two types.  It returns a new Type object.
< prev index next >