< prev index next >

src/hotspot/share/ci/ciEnv.hpp

Print this page


 115   // The CI treats a klass as loaded if it is consistently defined in
 116   // another loader, even if it hasn't yet been loaded in all loaders
 117   // that could potentially see it via delegation.
 118   ciKlass* get_klass_by_name(ciKlass* accessing_klass,
 119                              ciSymbol* klass_name,
 120                              bool require_local);
 121 
 122   // Constant pool access.
 123   ciKlass*   get_klass_by_index(const constantPoolHandle& cpool,
 124                                 int klass_index,
 125                                 bool& is_accessible,
 126                                 ciInstanceKlass* loading_klass);
 127   ciConstant get_constant_by_index(const constantPoolHandle& cpool,
 128                                    int pool_index, int cache_index,
 129                                    ciInstanceKlass* accessor);
 130   ciField*   get_field_by_index(ciInstanceKlass* loading_klass,
 131                                 int field_index);
 132   ciMethod*  get_method_by_index(const constantPoolHandle& cpool,
 133                                  int method_index, Bytecodes::Code bc,
 134                                  ciInstanceKlass* loading_klass);
 135   bool       get_never_null(const constantPoolHandle& cpool,
 136                             int klass_index);
 137 
 138   // Implementation methods for loading and constant pool access.
 139   ciKlass* get_klass_by_name_impl(ciKlass* accessing_klass,
 140                                   const constantPoolHandle& cpool,
 141                                   ciSymbol* klass_name,
 142                                   bool require_local,
 143                                   bool is_value_type = false);
 144   ciKlass*   get_klass_by_index_impl(const constantPoolHandle& cpool,
 145                                      int klass_index,
 146                                      bool& is_accessible,
 147                                      ciInstanceKlass* loading_klass);
 148   ciConstant get_constant_by_index_impl(const constantPoolHandle& cpool,
 149                                         int pool_index, int cache_index,
 150                                         ciInstanceKlass* loading_klass);
 151   ciField*   get_field_by_index_impl(ciInstanceKlass* loading_klass,
 152                                      int field_index);
 153   ciMethod*  get_method_by_index_impl(const constantPoolHandle& cpool,
 154                                       int method_index, Bytecodes::Code bc,
 155                                       ciInstanceKlass* loading_klass);
 156   bool       get_never_null_impl(const constantPoolHandle& cpool,
 157                                  int klass_index);
 158 
 159   // Helper methods
 160   bool       check_klass_accessibility(ciKlass* accessing_klass,
 161                                       Klass* resolved_klass);
 162   Method*    lookup_method(ciInstanceKlass* accessor,
 163                            ciKlass*         holder,
 164                            Symbol*          name,
 165                            Symbol*          sig,
 166                            Bytecodes::Code  bc,
 167                            constantTag      tag);
 168 
 169   // Get a ciObject from the object factory.  Ensures uniqueness
 170   // of ciObjects.
 171   ciObject* get_object(oop o) {
 172     if (o == NULL) {
 173       return _null_object_instance;
 174     } else {
 175       return _factory->get(o);
 176     }




 115   // The CI treats a klass as loaded if it is consistently defined in
 116   // another loader, even if it hasn't yet been loaded in all loaders
 117   // that could potentially see it via delegation.
 118   ciKlass* get_klass_by_name(ciKlass* accessing_klass,
 119                              ciSymbol* klass_name,
 120                              bool require_local);
 121 
 122   // Constant pool access.
 123   ciKlass*   get_klass_by_index(const constantPoolHandle& cpool,
 124                                 int klass_index,
 125                                 bool& is_accessible,
 126                                 ciInstanceKlass* loading_klass);
 127   ciConstant get_constant_by_index(const constantPoolHandle& cpool,
 128                                    int pool_index, int cache_index,
 129                                    ciInstanceKlass* accessor);
 130   ciField*   get_field_by_index(ciInstanceKlass* loading_klass,
 131                                 int field_index);
 132   ciMethod*  get_method_by_index(const constantPoolHandle& cpool,
 133                                  int method_index, Bytecodes::Code bc,
 134                                  ciInstanceKlass* loading_klass);
 135   bool       is_klass_never_null(const constantPoolHandle& cpool,
 136                                  int klass_index);
 137 
 138   // Implementation methods for loading and constant pool access.
 139   ciKlass* get_klass_by_name_impl(ciKlass* accessing_klass,
 140                                   const constantPoolHandle& cpool,
 141                                   ciSymbol* klass_name,
 142                                   bool require_local,
 143                                   bool is_value_type = false);
 144   ciKlass*   get_klass_by_index_impl(const constantPoolHandle& cpool,
 145                                      int klass_index,
 146                                      bool& is_accessible,
 147                                      ciInstanceKlass* loading_klass);
 148   ciConstant get_constant_by_index_impl(const constantPoolHandle& cpool,
 149                                         int pool_index, int cache_index,
 150                                         ciInstanceKlass* loading_klass);
 151   ciField*   get_field_by_index_impl(ciInstanceKlass* loading_klass,
 152                                      int field_index);
 153   ciMethod*  get_method_by_index_impl(const constantPoolHandle& cpool,
 154                                       int method_index, Bytecodes::Code bc,
 155                                       ciInstanceKlass* loading_klass);
 156   bool       is_klass_never_null_impl(const constantPoolHandle& cpool,
 157                                       int klass_index);
 158 
 159   // Helper methods
 160   bool       check_klass_accessibility(ciKlass* accessing_klass,
 161                                       Klass* resolved_klass);
 162   Method*    lookup_method(ciInstanceKlass* accessor,
 163                            ciKlass*         holder,
 164                            Symbol*          name,
 165                            Symbol*          sig,
 166                            Bytecodes::Code  bc,
 167                            constantTag      tag);
 168 
 169   // Get a ciObject from the object factory.  Ensures uniqueness
 170   // of ciObjects.
 171   ciObject* get_object(oop o) {
 172     if (o == NULL) {
 173       return _null_object_instance;
 174     } else {
 175       return _factory->get(o);
 176     }


< prev index next >