src/share/vm/ci/ciObjArrayKlass.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/ci

src/share/vm/ci/ciObjArrayKlass.cpp

Print this page
rev 5240 : 8023657: New type profiling points: arguments to call
Summary: x86 interpreter and c1 type profiling for arguments at calls
Reviewed-by:


 162   }
 163 
 164   // The array klass was unable to be made or the element klass was
 165   // not loaded.
 166   ciSymbol* array_name = construct_array_name(element_klass->name(), 1);
 167   if (array_name == ciEnv::unloaded_cisymbol()) {
 168     return ciEnv::unloaded_ciobjarrayklass();
 169   }
 170   return
 171     CURRENT_ENV->get_unloaded_klass(element_klass, array_name)
 172                         ->as_obj_array_klass();
 173 }
 174 
 175 // ------------------------------------------------------------------
 176 // ciObjArrayKlass::make
 177 //
 178 // Make an array klass corresponding to the specified primitive type.
 179 ciObjArrayKlass* ciObjArrayKlass::make(ciKlass* element_klass) {
 180   GUARDED_VM_ENTRY(return make_impl(element_klass);)
 181 }















 162   }
 163 
 164   // The array klass was unable to be made or the element klass was
 165   // not loaded.
 166   ciSymbol* array_name = construct_array_name(element_klass->name(), 1);
 167   if (array_name == ciEnv::unloaded_cisymbol()) {
 168     return ciEnv::unloaded_ciobjarrayklass();
 169   }
 170   return
 171     CURRENT_ENV->get_unloaded_klass(element_klass, array_name)
 172                         ->as_obj_array_klass();
 173 }
 174 
 175 // ------------------------------------------------------------------
 176 // ciObjArrayKlass::make
 177 //
 178 // Make an array klass corresponding to the specified primitive type.
 179 ciObjArrayKlass* ciObjArrayKlass::make(ciKlass* element_klass) {
 180   GUARDED_VM_ENTRY(return make_impl(element_klass);)
 181 }
 182 
 183 ciKlass* ciObjArrayKlass::exact_klass() {
 184   ciType* base = base_element_type();
 185   if (base->is_instance_klass()) {
 186     ciInstanceKlass* ik = base->as_instance_klass();
 187     if (ik->exact_klass() != NULL) {
 188       return this;
 189     }
 190   } else if (base->is_primitive_type()) {
 191     return this;
 192   }
 193   return NULL;
 194 }
src/share/vm/ci/ciObjArrayKlass.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File