55 GrowableArray<ciField*>* _nonstatic_fields; |
56 GrowableArray<ciField*>* _nonstatic_fields; |
56 |
57 |
57 enum { implementors_limit = instanceKlass::implementors_limit }; |
58 enum { implementors_limit = instanceKlass::implementors_limit }; |
58 ciInstanceKlass* _implementors[implementors_limit]; |
59 ciInstanceKlass* _implementors[implementors_limit]; |
59 jint _nof_implementors; |
60 jint _nof_implementors; |
|
61 |
|
62 GrowableArray<ciField*>* _non_static_fields; |
60 |
63 |
61 protected: |
64 protected: |
62 ciInstanceKlass(KlassHandle h_k); |
65 ciInstanceKlass(KlassHandle h_k); |
63 ciInstanceKlass(ciSymbol* name, jobject loader, jobject protection_domain); |
66 ciInstanceKlass(ciSymbol* name, jobject loader, jobject protection_domain); |
64 |
67 |
127 >> LogHeapWordSize); |
130 >> LogHeapWordSize); |
128 } |
131 } |
129 jint nonstatic_field_size() { |
132 jint nonstatic_field_size() { |
130 assert(is_loaded(), "must be loaded"); |
133 assert(is_loaded(), "must be loaded"); |
131 return _nonstatic_field_size; } |
134 return _nonstatic_field_size; } |
|
135 jint nonstatic_oop_map_size() { |
|
136 assert(is_loaded(), "must be loaded"); |
|
137 return _nonstatic_oop_map_size; } |
132 ciInstanceKlass* super(); |
138 ciInstanceKlass* super(); |
133 jint nof_implementors() { |
139 jint nof_implementors() { |
134 assert(is_loaded(), "must be loaded"); |
140 assert(is_loaded(), "must be loaded"); |
135 if (_is_shared) return compute_shared_nof_implementors(); |
141 if (_is_shared) return compute_shared_nof_implementors(); |
136 return _nof_implementors; |
142 return _nof_implementors; |
137 } |
143 } |
138 |
144 |
139 ciInstanceKlass* get_canonical_holder(int offset); |
145 ciInstanceKlass* get_canonical_holder(int offset); |
140 ciField* get_field_by_offset(int field_offset, bool is_static); |
146 ciField* get_field_by_offset(int field_offset, bool is_static); |
|
147 |
|
148 GrowableArray<ciField*>* non_static_fields(); |
|
149 |
141 // total number of nonstatic fields (including inherited): |
150 // total number of nonstatic fields (including inherited): |
142 int nof_nonstatic_fields() { |
151 int nof_nonstatic_fields() { |
143 if (_nonstatic_fields == NULL) |
152 if (_nonstatic_fields == NULL) |
144 return compute_nonstatic_fields(); |
153 return compute_nonstatic_fields(); |
145 else |
154 else |