< prev index next >

src/share/vm/ci/ciInstanceKlass.hpp

Print this page




 168     impl = implementor();
 169     if (impl == NULL) {
 170       return 0;
 171     } else if (impl != this) {
 172       return 1;
 173     } else {
 174       return 2;
 175     }
 176   }
 177   bool has_default_methods()  {
 178     assert(is_loaded(), "must be loaded");
 179     return _has_default_methods;
 180   }
 181 
 182   bool is_anonymous() {
 183     return _is_anonymous;
 184   }
 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(); }
 225   bool is_final       () { return flags().is_final(); }
 226   bool is_super       () { return flags().is_super(); }
 227   bool is_interface   () { return flags().is_interface(); }
 228   bool is_abstract    () { return flags().is_abstract(); }
 229 
 230   ciMethod* find_method(ciSymbol* name, ciSymbol* signature);
 231   // Note:  To find a method from name and type strings, use ciSymbol::make,
 232   // but consider adding to vmSymbols.hpp instead.
 233 
 234   bool is_leaf_type();
 235   ciInstanceKlass* implementor();




 168     impl = implementor();
 169     if (impl == NULL) {
 170       return 0;
 171     } else if (impl != this) {
 172       return 1;
 173     } else {
 174       return 2;
 175     }
 176   }
 177   bool has_default_methods()  {
 178     assert(is_loaded(), "must be loaded");
 179     return _has_default_methods;
 180   }
 181 
 182   bool is_anonymous() {
 183     return _is_anonymous;
 184   }
 185 
 186   ciInstanceKlass* get_canonical_holder(int offset);
 187   ciField* get_field_by_offset(int field_offset, bool is_static);
 188   ciType*  get_field_type_by_offset(int field_offset);
 189   ciField* get_field_by_name(ciSymbol* name, ciSymbol* signature, bool is_static);
 190 
 191   // total number of nonstatic fields (including inherited):
 192   int nof_nonstatic_fields() {
 193     if (_nonstatic_fields == NULL)
 194       return compute_nonstatic_fields();
 195     else
 196       return _nonstatic_fields->length();
 197   }
 198 
 199   bool has_injected_fields() {
 200     if (_has_injected_fields == -1) {
 201       compute_injected_fields();
 202     }
 203     return _has_injected_fields > 0 ? true : false;
 204   }
 205 
 206   // nth nonstatic field (presented by ascending address)
 207   ciField* nonstatic_field_at(int i) {
 208     assert(_nonstatic_fields != NULL, "");
 209     return _nonstatic_fields->at(i);
 210   }
 211 
 212   ciInstanceKlass* unique_concrete_subklass();
 213   bool has_finalizable_subclass();
 214 
 215   bool contains_field_offset(int offset) {
 216     return instanceOopDesc::contains_field_offset(offset, nonstatic_field_size(), is_valuetype());
 217   }
 218 
 219   // Get the instance of java.lang.Class corresponding to
 220   // this klass.  This instance is used for locking of
 221   // synchronized static methods of this klass.
 222   ciInstance*            java_mirror();
 223 
 224   // Java access flags
 225   bool is_public      () { return flags().is_public(); }
 226   bool is_final       () { return flags().is_final(); }
 227   bool is_super       () { return flags().is_super(); }
 228   bool is_interface   () { return flags().is_interface(); }
 229   bool is_abstract    () { return flags().is_abstract(); }
 230 
 231   ciMethod* find_method(ciSymbol* name, ciSymbol* signature);
 232   // Note:  To find a method from name and type strings, use ciSymbol::make,
 233   // but consider adding to vmSymbols.hpp instead.
 234 
 235   bool is_leaf_type();
 236   ciInstanceKlass* implementor();


< prev index next >