Print this page
rev 1082 : imported patch indy.compiler.patch
rev 1083 : [mq]: indy.compiler.inline.patch

Split Close
Expand all
Collapse all
          --- old/src/share/vm/ci/ciEnv.hpp
          +++ new/src/share/vm/ci/ciEnv.hpp
↓ open down ↓ 113 lines elided ↑ open up ↑
 114  114    // Return an unloaded klass if !require_local and no class at all is found.
 115  115    //
 116  116    // The CI treats a klass as loaded if it is consistently defined in
 117  117    // another loader, even if it hasn't yet been loaded in all loaders
 118  118    // that could potentially see it via delegation.
 119  119    ciKlass* get_klass_by_name(ciKlass* accessing_klass,
 120  120                               ciSymbol* klass_name,
 121  121                               bool require_local);
 122  122  
 123  123    // Constant pool access.
 124      -  ciKlass*   get_klass_by_index(ciInstanceKlass* loading_klass,
      124 +  ciKlass*   get_klass_by_index(constantPoolHandle cpool,
 125  125                                  int klass_index,
 126      -                                bool& is_accessible);
 127      -  ciConstant get_constant_by_index(ciInstanceKlass* loading_klass,
 128      -                                   int constant_index);
      126 +                                bool& is_accessible,
      127 +                                ciInstanceKlass* loading_klass);
      128 +  ciConstant get_constant_by_index(constantPoolHandle cpool,
      129 +                                   int constant_index,
      130 +                                   ciInstanceKlass* accessor);
 129  131    bool       is_unresolved_string(ciInstanceKlass* loading_klass,
 130  132                                     int constant_index) const;
 131  133    bool       is_unresolved_klass(ciInstanceKlass* loading_klass,
 132  134                                     int constant_index) const;
 133  135    ciField*   get_field_by_index(ciInstanceKlass* loading_klass,
 134  136                                  int field_index);
 135      -  ciMethod*  get_method_by_index(ciInstanceKlass* loading_klass,
 136      -                                 int method_index, Bytecodes::Code bc);
      137 +  ciMethod*  get_method_by_index(constantPoolHandle cpool,
      138 +                                 int method_index, Bytecodes::Code bc,
      139 +                                 ciInstanceKlass* loading_klass);
 137  140  
 138  141    // Implementation methods for loading and constant pool access.
 139  142    ciKlass* get_klass_by_name_impl(ciKlass* accessing_klass,
 140  143                                    ciSymbol* klass_name,
 141  144                                    bool require_local);
 142      -  ciKlass*   get_klass_by_index_impl(ciInstanceKlass* loading_klass,
      145 +  ciKlass*   get_klass_by_index_impl(constantPoolHandle cpool,
 143  146                                       int klass_index,
 144      -                                     bool& is_accessible);
 145      -  ciConstant get_constant_by_index_impl(ciInstanceKlass* loading_klass,
 146      -                                        int constant_index);
      147 +                                     bool& is_accessible,
      148 +                                     ciInstanceKlass* loading_klass);
      149 +  ciConstant get_constant_by_index_impl(constantPoolHandle cpool,
      150 +                                        int constant_index,
      151 +                                        ciInstanceKlass* loading_klass);
 147  152    bool       is_unresolved_string_impl (instanceKlass* loading_klass,
 148  153                                          int constant_index) const;
 149  154    bool       is_unresolved_klass_impl (instanceKlass* loading_klass,
 150  155                                          int constant_index) const;
 151  156    ciField*   get_field_by_index_impl(ciInstanceKlass* loading_klass,
 152  157                                       int field_index);
 153      -  ciMethod*  get_method_by_index_impl(ciInstanceKlass* loading_klass,
 154      -                                      int method_index, Bytecodes::Code bc);
 155      -  ciMethod*  get_fake_invokedynamic_method_impl(ciInstanceKlass* accessor,
      158 +  ciMethod*  get_method_by_index_impl(constantPoolHandle cpool,
      159 +                                      int method_index, Bytecodes::Code bc,
      160 +                                      ciInstanceKlass* loading_klass);
      161 +  ciMethod*  get_fake_invokedynamic_method_impl(constantPoolHandle cpool,
 156  162                                                  int index, Bytecodes::Code bc);
 157  163  
 158  164    // Helper methods
 159  165    bool       check_klass_accessibility(ciKlass* accessing_klass,
 160  166                                        klassOop resolved_klassOop);
 161  167    methodOop  lookup_method(instanceKlass*  accessor,
 162  168                             instanceKlass*  holder,
 163  169                             symbolOop       name,
 164  170                             symbolOop       sig,
 165  171                             Bytecodes::Code bc);
↓ open down ↓ 244 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX