56
57 klassOop lower_dimension() const { return _lower_dimension; }
58 void set_lower_dimension(klassOop k) { oop_store_without_check((oop*) &_lower_dimension, (oop) k); }
59 oop* adr_lower_dimension() { return (oop*)&this->_lower_dimension;}
60
61 // Allocation profiling support
62 juint alloc_size() const { return _alloc_size; }
63 void set_alloc_size(juint n) { _alloc_size = n; }
64
65 // offset of first element, including any padding for the sake of alignment
66 int array_header_in_bytes() const { return layout_helper_header_size(layout_helper()); }
67 int log2_element_size() const { return layout_helper_log2_element_size(layout_helper()); }
68 // type of elements (T_OBJECT for both oop arrays and array-arrays)
69 BasicType element_type() const { return layout_helper_element_type(layout_helper()); }
70
71 oop component_mirror() const { return _component_mirror; }
72 void set_component_mirror(oop m) { oop_store((oop*) &_component_mirror, m); }
73 oop* adr_component_mirror() { return (oop*)&this->_component_mirror;}
74
75 // Compiler/Interpreter offset
76 static ByteSize component_mirror_offset() { return byte_offset_of(arrayKlass, _component_mirror); }
77
78 virtual klassOop java_super() const;//{ return SystemDictionary::Object_klass(); }
79
80 // Allocation
81 // Sizes points to the first dimension of the array, subsequent dimensions
82 // are always in higher memory. The callers of these set that up.
83 virtual oop multi_allocate(int rank, jint* sizes, TRAPS);
84 objArrayOop allocate_arrayArray(int n, int length, TRAPS);
85
86 // Lookup operations
87 methodOop uncached_lookup_method(Symbol* name, Symbol* signature) const;
88
89 // Casting from klassOop
90 static arrayKlass* cast(klassOop k) {
91 Klass* kp = k->klass_part();
92 assert(kp->null_vtbl() || kp->oop_is_array(), "cast to arrayKlass");
93 return (arrayKlass*) kp;
94 }
95
96 objArrayOop compute_secondary_supers(int num_extra_slots, TRAPS);
|
56
57 klassOop lower_dimension() const { return _lower_dimension; }
58 void set_lower_dimension(klassOop k) { oop_store_without_check((oop*) &_lower_dimension, (oop) k); }
59 oop* adr_lower_dimension() { return (oop*)&this->_lower_dimension;}
60
61 // Allocation profiling support
62 juint alloc_size() const { return _alloc_size; }
63 void set_alloc_size(juint n) { _alloc_size = n; }
64
65 // offset of first element, including any padding for the sake of alignment
66 int array_header_in_bytes() const { return layout_helper_header_size(layout_helper()); }
67 int log2_element_size() const { return layout_helper_log2_element_size(layout_helper()); }
68 // type of elements (T_OBJECT for both oop arrays and array-arrays)
69 BasicType element_type() const { return layout_helper_element_type(layout_helper()); }
70
71 oop component_mirror() const { return _component_mirror; }
72 void set_component_mirror(oop m) { oop_store((oop*) &_component_mirror, m); }
73 oop* adr_component_mirror() { return (oop*)&this->_component_mirror;}
74
75 // Compiler/Interpreter offset
76 static ByteSize component_mirror_offset() { return in_ByteSize(sizeof(klassOopDesc) + offset_of(arrayKlass, _component_mirror)); }
77
78 virtual klassOop java_super() const;//{ return SystemDictionary::Object_klass(); }
79
80 // Allocation
81 // Sizes points to the first dimension of the array, subsequent dimensions
82 // are always in higher memory. The callers of these set that up.
83 virtual oop multi_allocate(int rank, jint* sizes, TRAPS);
84 objArrayOop allocate_arrayArray(int n, int length, TRAPS);
85
86 // Lookup operations
87 methodOop uncached_lookup_method(Symbol* name, Symbol* signature) const;
88
89 // Casting from klassOop
90 static arrayKlass* cast(klassOop k) {
91 Klass* kp = k->klass_part();
92 assert(kp->null_vtbl() || kp->oop_is_array(), "cast to arrayKlass");
93 return (arrayKlass*) kp;
94 }
95
96 objArrayOop compute_secondary_supers(int num_extra_slots, TRAPS);
|