< prev index next >

src/hotspot/share/ci/ciType.cpp

Print this page
*** 31,11 ***
  
  ciType* ciType::_basic_types[T_CONFLICT+1];
  
  // ciType
  //
! // This class represents a Java reference or primitive type.
  
  // ------------------------------------------------------------------
  // ciType::ciType
  //
  ciType::ciType(BasicType basic_type) : ciMetadata() {
--- 31,11 ---
  
  ciType* ciType::_basic_types[T_CONFLICT+1];
  
  // ciType
  //
! // This class represents a Java reference, inline type or primitive type.
  
  // ------------------------------------------------------------------
  // ciType::ciType
  //
  ciType::ciType(BasicType basic_type) : ciMetadata() {

*** 138,5 ***
--- 138,18 ---
  // ------------------------------------------------------------------
  // ciReturnAddress::make
  ciReturnAddress* ciReturnAddress::make(int bci) {
    GUARDED_VM_ENTRY(return CURRENT_ENV->get_return_address(bci);)
  }
+ 
+ ciWrapper::ciWrapper(ciType* type, int properties)
+     : ciType(type->basic_type()),
+       _type(type),
+       _properties(properties) {
+   assert(!type->is_wrapper(), "Thou shall not double wrap!");
+   assert(type->is_inlinetype()
+              // An abstract value type is an instance_klass
+              || (type->is_instance_klass() && !type->as_instance_klass()->flags().is_identity())
+              // An unloaded inline type is an instance_klass (see ciEnv::get_klass_by_name_impl())
+              || (type->is_instance_klass() && !type->is_loaded()),
+          "should only be used for inline types");
+ }
< prev index next >