20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_CI_CIARRAYKLASS_HPP
26 #define SHARE_VM_CI_CIARRAYKLASS_HPP
27
28 #include "ci/ciKlass.hpp"
29
30 // ciArrayKlass
31 //
32 // This class, and its subclasses represent Klass*s in the
33 // HotSpot virtual machine whose Klass part is an ArrayKlass.
34 class ciArrayKlass : public ciKlass {
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 };
|
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_CI_CIARRAYKLASS_HPP
26 #define SHARE_VM_CI_CIARRAYKLASS_HPP
27
28 #include "ci/ciKlass.hpp"
29
30 // ciArrayKlass
31 //
32 // This class, and its subclasses represent Klass*s in the
33 // HotSpot virtual machine whose Klass part is an ArrayKlass.
34 class ciArrayKlass : public ciKlass {
35 CI_PACKAGE_ACCESS
36 private:
37 jint _dimension;
38
39 protected:
40 ciArrayKlass(Klass* 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 };
|