< prev index next >

src/hotspot/share/opto/type.hpp

Print this page

        

@@ -1316,27 +1316,22 @@
 };
 
 //------------------------------TypeValueTypePtr-------------------------------------
 // Class of value type pointers
 class TypeValueTypePtr : public TypeOopPtr {
-  TypeValueTypePtr(const TypeValueType* vt, PTR ptr, ciObject* o, Offset offset, int instance_id, const TypePtr* speculative, int inline_depth)
-    : TypeOopPtr(ValueTypePtr, ptr, vt->value_klass(), true, o, offset, Offset::bottom, instance_id, speculative, inline_depth) {
-    _vt = vt;
+  TypeValueTypePtr(PTR ptr, ciValueKlass* vk, ciObject* o, Offset offset, int instance_id, const TypePtr* speculative, int inline_depth)
+    : TypeOopPtr(ValueTypePtr, ptr, vk, true, o, offset, Offset::bottom, instance_id, speculative, inline_depth) {
   }
 
-  const TypeValueType* _vt;    // Value type we point to
-
 public:
   // Make a pointer to a value type
-  static const TypeValueTypePtr* make(const TypeValueType* vt, PTR ptr = TypePtr::BotPTR, ciObject* o = NULL, Offset offset = Offset(0),
+  static const TypeValueTypePtr* make(PTR ptr, ciValueKlass* vk, ciObject* o = NULL, Offset offset = Offset(0),
                                       int instance_id = InstanceBot, const TypePtr* speculative = NULL, int inline_depth = InlineDepthBottom, bool narrow = false);
-  // Make a pointer to a value type
-  static const TypeValueTypePtr* make(PTR ptr, ciValueKlass* vk, ciObject* o = NULL) { return make(TypeValueType::make(vk), ptr, o); }
   // Make a pointer to a constant value type
   static const TypeValueTypePtr* make(ciObject* o) { return make(TypePtr::Constant, o->klass()->as_value_klass(), o);  }
 
-  const TypeValueType* value_type() const { return _vt; }
+  ciValueKlass* value_klass() const { return klass()->as_value_klass(); }
 
   virtual const TypePtr* add_offset(intptr_t offset) const;
 
   virtual const Type* cast_to_ptr_type(PTR ptr) const;
   virtual const TypeOopPtr* cast_to_instance_id(int instance_id) const;
< prev index next >