hotspot/src/share/vm/ci/ciArrayKlass.hpp
changeset 13952 e3cf184080bc
parent 13728 882756847a04
child 26412 80741eb33ba2
equal deleted inserted replaced
13918:b01a48301e67 13952:e3cf184080bc
    28 #include "ci/ciKlass.hpp"
    28 #include "ci/ciKlass.hpp"
    29 
    29 
    30 // ciArrayKlass
    30 // ciArrayKlass
    31 //
    31 //
    32 // This class, and its subclasses represent Klass*s in the
    32 // This class, and its subclasses represent Klass*s in the
    33 // HotSpot virtual machine whose Klass part is an arrayKlass.
    33 // HotSpot virtual machine whose Klass part is an ArrayKlass.
    34 class ciArrayKlass : public ciKlass {
    34 class ciArrayKlass : public ciKlass {
    35   CI_PACKAGE_ACCESS
    35   CI_PACKAGE_ACCESS
    36 private:
    36 private:
    37   jint _dimension;
    37   jint _dimension;
    38 
    38 
    39 protected:
    39 protected:
    40   ciArrayKlass(KlassHandle h_k);
    40   ciArrayKlass(KlassHandle h_k);
    41   ciArrayKlass(ciSymbol* name, int dimension, BasicType bt);
    41   ciArrayKlass(ciSymbol* name, int dimension, BasicType bt);
    42 
    42 
    43   arrayKlass* get_arrayKlass() {
    43   ArrayKlass* get_ArrayKlass() {
    44     return (arrayKlass*)get_Klass();
    44     return (ArrayKlass*)get_Klass();
    45   }
    45   }
    46 
    46 
    47   const char* type_string() { return "ciArrayKlass"; }
    47   const char* type_string() { return "ciArrayKlass"; }
    48 
    48 
    49 public:
    49 public:
    51   ciType* element_type();       // JLS calls this the "component type"
    51   ciType* element_type();       // JLS calls this the "component type"
    52   ciType* base_element_type();  // JLS calls this the "element type"
    52   ciType* base_element_type();  // JLS calls this the "element type"
    53   bool is_leaf_type();          // No subtypes of this array type.
    53   bool is_leaf_type();          // No subtypes of this array type.
    54 
    54 
    55   ciInstance* component_mirror() {
    55   ciInstance* component_mirror() {
    56     // This is a real field in arrayKlass, but we derive it from element_type.
    56     // This is a real field in ArrayKlass, but we derive it from element_type.
    57     return element_type()->java_mirror();
    57     return element_type()->java_mirror();
    58   }
    58   }
    59 
    59 
    60   // What kind of vmObject is this?
    60   // What kind of vmObject is this?
    61   bool is_array_klass() const { return true; }
    61   bool is_array_klass() const { return true; }