// ------------------------------------------------------------------ // ciArrayKlass::is_leaf_type bool ciArrayKlass::is_leaf_type() { if (is_type_array_klass()) { return true; } else { return as_obj_array_klass()->base_element_klass()->is_leaf_type(); } }
// ------------------------------------------------------------------ // ciArrayKlass::element_type // // What type is obtained when this array is indexed once? ciType* ciArrayKlass::element_type() { if (is_type_array_klass()) { return ciType::make(as_type_array_klass()->element_type()); } else { return as_obj_array_klass()->element_klass()->as_klass(); } }
// ------------------------------------------------------------------ // ciArrayKlass::base_element_type // // What type is obtained when this array is indexed as many times as possible? ciType* ciArrayKlass::base_element_type() { if (is_type_array_klass()) { return ciType::make(as_type_array_klass()->element_type()); } else { ciKlass* ek = as_obj_array_klass()->base_element_klass(); if (ek->is_type_array_klass()) { return ciType::make(ek->as_type_array_klass()->element_type()); } return ek; } }
ciTypeArrayKlass* as_type_array_klass() { assert(is_type_array_klass(), "bad cast"); return (ciTypeArrayKlass*)this; }