hotspot/src/share/vm/interpreter/linkResolver.hpp
changeset 46505 fd4bc78630b1
parent 46458 3c12af929e7d
child 46727 6e4a84748e2c
equal deleted inserted replaced
46504:38048d4d20e7 46505:fd4bc78630b1
    54   CallKind     _call_kind;              // kind of call (static(=bytecode static/special +
    54   CallKind     _call_kind;              // kind of call (static(=bytecode static/special +
    55                                         //               others inferred), vtable, itable)
    55                                         //               others inferred), vtable, itable)
    56   int          _call_index;             // vtable or itable index of selected class method (if any)
    56   int          _call_index;             // vtable or itable index of selected class method (if any)
    57   Handle       _resolved_appendix;      // extra argument in constant pool (if CPCE::has_appendix)
    57   Handle       _resolved_appendix;      // extra argument in constant pool (if CPCE::has_appendix)
    58   Handle       _resolved_method_type;   // MethodType (for invokedynamic and invokehandle call sites)
    58   Handle       _resolved_method_type;   // MethodType (for invokedynamic and invokehandle call sites)
       
    59   Handle       _resolved_method_name;   // Object holding the ResolvedMethodName
    59 
    60 
    60   void set_static(Klass* resolved_klass, const methodHandle& resolved_method, TRAPS);
    61   void set_static(Klass* resolved_klass, const methodHandle& resolved_method, TRAPS);
    61   void set_interface(Klass* resolved_klass, Klass* selected_klass,
    62   void set_interface(Klass* resolved_klass, Klass* selected_klass,
    62                      const methodHandle& resolved_method,
    63                      const methodHandle& resolved_method,
    63                      const methodHandle& selected_method,
    64                      const methodHandle& selected_method,
    86     _call_index = Method::garbage_vtable_index;
    87     _call_index = Method::garbage_vtable_index;
    87 #endif //PRODUCT
    88 #endif //PRODUCT
    88   }
    89   }
    89 
    90 
    90   // utility to extract an effective CallInfo from a method and an optional receiver limit
    91   // utility to extract an effective CallInfo from a method and an optional receiver limit
    91   // does not queue the method for compilation
    92   // does not queue the method for compilation.  This also creates a ResolvedMethodName
    92   CallInfo(Method* resolved_method, Klass* resolved_klass = NULL);
    93   // object for the resolved_method.
       
    94   CallInfo(Method* resolved_method, Klass* resolved_klass, TRAPS);
    93 
    95 
    94   Klass*  resolved_klass() const                 { return _resolved_klass; }
    96   Klass*  resolved_klass() const                 { return _resolved_klass; }
    95   Klass*  selected_klass() const                 { return _selected_klass; }
    97   Klass*  selected_klass() const                 { return _selected_klass; }
    96   methodHandle resolved_method() const           { return _resolved_method; }
    98   methodHandle resolved_method() const           { return _resolved_method; }
    97   methodHandle selected_method() const           { return _selected_method; }
    99   methodHandle selected_method() const           { return _selected_method; }
    98   Handle       resolved_appendix() const         { return _resolved_appendix; }
   100   Handle       resolved_appendix() const         { return _resolved_appendix; }
    99   Handle       resolved_method_type() const      { return _resolved_method_type; }
   101   Handle       resolved_method_type() const      { return _resolved_method_type; }
       
   102   Handle       resolved_method_name() const      { return _resolved_method_name; }
       
   103   // Materialize a java.lang.invoke.ResolvedMethodName for this resolved_method
       
   104   void     set_resolved_method_name(TRAPS);
   100 
   105 
   101   BasicType    result_type() const               { return selected_method()->result_type(); }
   106   BasicType    result_type() const               { return selected_method()->result_type(); }
   102   CallKind     call_kind() const                 { return _call_kind; }
   107   CallKind     call_kind() const                 { return _call_kind; }
   103   int          call_index() const                { return _call_index; }
   108   int          call_index() const                { return _call_index; }
   104   int          vtable_index() const {
   109   int          vtable_index() const {