src/share/vm/ci/ciInstanceKlass.hpp

changeset 479
52fed2ec0afb
parent 435
a61af66fc99e
child 548
ba764ed4b6f2
equal deleted inserted replaced
478:d821d920b465 479:52fed2ec0afb
44 bool _is_linked; 44 bool _is_linked;
45 bool _has_finalizer; 45 bool _has_finalizer;
46 bool _has_subklass; 46 bool _has_subklass;
47 ciFlags _flags; 47 ciFlags _flags;
48 jint _nonstatic_field_size; 48 jint _nonstatic_field_size;
49 jint _nonstatic_oop_map_size;
49 50
50 // Lazy fields get filled in only upon request. 51 // Lazy fields get filled in only upon request.
51 ciInstanceKlass* _super; 52 ciInstanceKlass* _super;
52 ciInstance* _java_mirror; 53 ciInstance* _java_mirror;
53 54
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

mercurial