185 186 ciInstanceKlass* get_canonical_holder(int offset); 187 ciField* get_field_by_offset(int field_offset, bool is_static); 188 ciField* get_field_by_name(ciSymbol* name, ciSymbol* signature, bool is_static); 189 190 // total number of nonstatic fields (including inherited): 191 int nof_nonstatic_fields() { 192 if (_nonstatic_fields == NULL) 193 return compute_nonstatic_fields(); 194 else 195 return _nonstatic_fields->length(); 196 } 197 198 bool has_injected_fields() { 199 if (_has_injected_fields == -1) { 200 compute_injected_fields(); 201 } 202 return _has_injected_fields > 0 ? true : false; 203 } 204 205 // nth nonstatic field (presented by ascending address) 206 ciField* nonstatic_field_at(int i) { 207 assert(_nonstatic_fields != NULL, ""); 208 return _nonstatic_fields->at(i); 209 } 210 211 ciInstanceKlass* unique_concrete_subklass(); 212 bool has_finalizable_subclass(); 213 214 bool contains_field_offset(int offset) { 215 return instanceOopDesc::contains_field_offset(offset, nonstatic_field_size()); 216 } 217 218 // Get the instance of java.lang.Class corresponding to 219 // this klass. This instance is used for locking of 220 // synchronized static methods of this klass. 221 ciInstance* java_mirror(); 222 223 // Java access flags 224 bool is_public () { return flags().is_public(); } | 185 186 ciInstanceKlass* get_canonical_holder(int offset); 187 ciField* get_field_by_offset(int field_offset, bool is_static); 188 ciField* get_field_by_name(ciSymbol* name, ciSymbol* signature, bool is_static); 189 190 // total number of nonstatic fields (including inherited): 191 int nof_nonstatic_fields() { 192 if (_nonstatic_fields == NULL) 193 return compute_nonstatic_fields(); 194 else 195 return _nonstatic_fields->length(); 196 } 197 198 bool has_injected_fields() { 199 if (_has_injected_fields == -1) { 200 compute_injected_fields(); 201 } 202 return _has_injected_fields > 0 ? true : false; 203 } 204 205 bool has_object_fields() const; 206 207 // nth nonstatic field (presented by ascending address) 208 ciField* nonstatic_field_at(int i) { 209 assert(_nonstatic_fields != NULL, ""); 210 return _nonstatic_fields->at(i); 211 } 212 213 ciInstanceKlass* unique_concrete_subklass(); 214 bool has_finalizable_subclass(); 215 216 bool contains_field_offset(int offset) { 217 return instanceOopDesc::contains_field_offset(offset, nonstatic_field_size()); 218 } 219 220 // Get the instance of java.lang.Class corresponding to 221 // this klass. This instance is used for locking of 222 // synchronized static methods of this klass. 223 ciInstance* java_mirror(); 224 225 // Java access flags 226 bool is_public () { return flags().is_public(); } |