35 CI_PACKAGE_ACCESS 36 private: 37 jint _dimension; 38 39 protected: 40 ciArrayKlass(KlassHandle h_k); 41 ciArrayKlass(ciSymbol* name, int dimension, BasicType bt); 42 43 ArrayKlass* get_ArrayKlass() { 44 return (ArrayKlass*)get_Klass(); 45 } 46 47 const char* type_string() { return "ciArrayKlass"; } 48 49 public: 50 jint dimension() { return _dimension; } 51 ciType* element_type(); // JLS calls this the "component type" 52 ciType* base_element_type(); // JLS calls this the "element type" 53 bool is_leaf_type(); // No subtypes of this array type. 54 55 ciInstance* component_mirror() { 56 // This is a real field in ArrayKlass, but we derive it from element_type. 57 return element_type()->java_mirror(); 58 } 59 60 // What kind of vmObject is this? 61 bool is_array_klass() const { return true; } 62 bool is_java_klass() const { return true; } 63 64 static ciArrayKlass* make(ciType* element_type); 65 }; 66 67 #endif // SHARE_VM_CI_CIARRAYKLASS_HPP | 35 CI_PACKAGE_ACCESS 36 private: 37 jint _dimension; 38 39 protected: 40 ciArrayKlass(KlassHandle h_k); 41 ciArrayKlass(ciSymbol* name, int dimension, BasicType bt); 42 43 ArrayKlass* get_ArrayKlass() { 44 return (ArrayKlass*)get_Klass(); 45 } 46 47 const char* type_string() { return "ciArrayKlass"; } 48 49 public: 50 jint dimension() { return _dimension; } 51 ciType* element_type(); // JLS calls this the "component type" 52 ciType* base_element_type(); // JLS calls this the "element type" 53 bool is_leaf_type(); // No subtypes of this array type. 54 55 // What kind of vmObject is this? 56 bool is_array_klass() const { return true; } 57 bool is_java_klass() const { return true; } 58 59 static ciArrayKlass* make(ciType* element_type); 60 }; 61 62 #endif // SHARE_VM_CI_CIARRAYKLASS_HPP |