Print this page


Split Close
Expand all
Collapse all
          --- old/src/share/vm/ci/ciEnv.hpp
          +++ new/src/share/vm/ci/ciEnv.hpp
↓ open down ↓ 145 lines elided ↑ open up ↑
 146  146                                       ciInstanceKlass* loading_klass);
 147  147    ciConstant get_constant_by_index_impl(constantPoolHandle cpool,
 148  148                                          int pool_index, int cache_index,
 149  149                                          ciInstanceKlass* loading_klass);
 150  150    ciField*   get_field_by_index_impl(ciInstanceKlass* loading_klass,
 151  151                                       int field_index);
 152  152    ciMethod*  get_method_by_index_impl(constantPoolHandle cpool,
 153  153                                        int method_index, Bytecodes::Code bc,
 154  154                                        ciInstanceKlass* loading_klass);
 155  155    ciMethod*  get_fake_invokedynamic_method_impl(constantPoolHandle cpool,
 156      -                                                int index, Bytecodes::Code bc);
      156 +                                                int index, Bytecodes::Code bc,
      157 +                                                ciInstanceKlass* accessor);
 157  158  
 158  159    // Helper methods
 159  160    bool       check_klass_accessibility(ciKlass* accessing_klass,
 160  161                                        klassOop resolved_klassOop);
 161  162    methodOop  lookup_method(instanceKlass*  accessor,
 162  163                             instanceKlass*  holder,
 163  164                             Symbol*         name,
 164  165                             Symbol*         sig,
 165  166                             Bytecodes::Code bc);
 166  167  
↓ open down ↓ 18 lines elided ↑ open up ↑
 185  186  
 186  187    ciMethod* get_method_from_handle(jobject method);
 187  188  
 188  189    ciInstance* get_or_create_exception(jobject& handle, Symbol* name);
 189  190  
 190  191    // Get a ciMethod representing either an unfound method or
 191  192    // a method with an unloaded holder.  Ensures uniqueness of
 192  193    // the result.
 193  194    ciMethod* get_unloaded_method(ciInstanceKlass* holder,
 194  195                                  ciSymbol*        name,
 195      -                                ciSymbol*        signature) {
 196      -    return _factory->get_unloaded_method(holder, name, signature);
      196 +                                ciSymbol*        signature,
      197 +                                ciInstanceKlass* accessor) {
      198 +    return _factory->get_unloaded_method(holder, name, signature, accessor);
 197  199    }
 198  200  
 199  201    // Get a ciKlass representing an unloaded klass.
 200  202    // Ensures uniqueness of the result.
 201      -  ciKlass* get_unloaded_klass(ciKlass* accessing_klass,
      203 +  ciKlass* get_unloaded_klass(ciKlass*  accessing_klass,
 202  204                                ciSymbol* name) {
 203  205      return _factory->get_unloaded_klass(accessing_klass, name, true);
 204  206    }
 205  207  
 206  208    // Get a ciKlass representing an unloaded klass mirror.
 207  209    // Result is not necessarily unique, but will be unloaded.
 208  210    ciInstance* get_unloaded_klass_mirror(ciKlass* type) {
 209  211      return _factory->get_unloaded_klass_mirror(type);
 210  212    }
 211  213  
↓ open down ↓ 5 lines elided ↑ open up ↑
 217  219      return _factory->get_unloaded_method_handle_constant(holder, name, signature, ref_kind);
 218  220    }
 219  221  
 220  222    // Get a ciInstance representing an unresolved method type constant.
 221  223    ciInstance* get_unloaded_method_type_constant(ciSymbol* signature) {
 222  224      return _factory->get_unloaded_method_type_constant(signature);
 223  225    }
 224  226  
 225  227    // See if we already have an unloaded klass for the given name
 226  228    // or return NULL if not.
 227      -  ciKlass *check_get_unloaded_klass(ciKlass* accessing_klass, ciSymbol* name) {
      229 +  ciKlass *check_get_unloaded_klass(ciKlass*  accessing_klass, ciSymbol* name) {
 228  230      return _factory->get_unloaded_klass(accessing_klass, name, false);
 229  231    }
 230  232  
 231  233    // Get a ciReturnAddress corresponding to the given bci.
 232  234    // Ensures uniqueness of the result.
 233  235    ciReturnAddress* get_return_address(int bci) {
 234  236      return _factory->get_return_address(bci);
 235  237    }
 236  238  
 237  239    // Get a ciMethodData representing the methodData for a method
↓ open down ↓ 171 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX