equal
deleted
inserted
replaced
37 private: |
37 private: |
38 int _dimension; // This is n'th-dimensional array. |
38 int _dimension; // This is n'th-dimensional array. |
39 Klass* volatile _higher_dimension; // Refers the (n+1)'th-dimensional array (if present). |
39 Klass* volatile _higher_dimension; // Refers the (n+1)'th-dimensional array (if present). |
40 Klass* volatile _lower_dimension; // Refers the (n-1)'th-dimensional array (if present). |
40 Klass* volatile _lower_dimension; // Refers the (n-1)'th-dimensional array (if present). |
41 int _vtable_len; // size of vtable for this klass |
41 int _vtable_len; // size of vtable for this klass |
42 oop _component_mirror; // component type, as a java/lang/Class |
|
43 |
42 |
44 protected: |
43 protected: |
45 // Constructors |
44 // Constructors |
46 // The constructor with the Symbol argument does the real array |
45 // The constructor with the Symbol argument does the real array |
47 // initialization, the other is a dummy |
46 // initialization, the other is a dummy |
67 // offset of first element, including any padding for the sake of alignment |
66 // offset of first element, including any padding for the sake of alignment |
68 int array_header_in_bytes() const { return layout_helper_header_size(layout_helper()); } |
67 int array_header_in_bytes() const { return layout_helper_header_size(layout_helper()); } |
69 int log2_element_size() const { return layout_helper_log2_element_size(layout_helper()); } |
68 int log2_element_size() const { return layout_helper_log2_element_size(layout_helper()); } |
70 // type of elements (T_OBJECT for both oop arrays and array-arrays) |
69 // type of elements (T_OBJECT for both oop arrays and array-arrays) |
71 BasicType element_type() const { return layout_helper_element_type(layout_helper()); } |
70 BasicType element_type() const { return layout_helper_element_type(layout_helper()); } |
72 |
|
73 oop component_mirror() const { return _component_mirror; } |
|
74 void set_component_mirror(oop m) { klass_oop_store(&_component_mirror, m); } |
|
75 oop* adr_component_mirror() { return (oop*)&this->_component_mirror;} |
|
76 |
|
77 // Compiler/Interpreter offset |
|
78 static ByteSize component_mirror_offset() { return in_ByteSize(offset_of(ArrayKlass, _component_mirror)); } |
|
79 |
71 |
80 virtual Klass* java_super() const;//{ return SystemDictionary::Object_klass(); } |
72 virtual Klass* java_super() const;//{ return SystemDictionary::Object_klass(); } |
81 |
73 |
82 // Allocation |
74 // Allocation |
83 // Sizes points to the first dimension of the array, subsequent dimensions |
75 // Sizes points to the first dimension of the array, subsequent dimensions |
120 public: |
112 public: |
121 // Iterators |
113 // Iterators |
122 void array_klasses_do(void f(Klass* k)); |
114 void array_klasses_do(void f(Klass* k)); |
123 void array_klasses_do(void f(Klass* k, TRAPS), TRAPS); |
115 void array_klasses_do(void f(Klass* k, TRAPS), TRAPS); |
124 |
116 |
125 // GC support |
|
126 virtual void oops_do(OopClosure* cl); |
|
127 |
|
128 // Return a handle. |
117 // Return a handle. |
129 static void complete_create_array_klass(ArrayKlass* k, KlassHandle super_klass, TRAPS); |
118 static void complete_create_array_klass(ArrayKlass* k, KlassHandle super_klass, TRAPS); |
130 |
119 |
131 |
120 |
132 // jvm support |
121 // jvm support |