src/share/vm/interpreter/linkResolver.hpp

changeset 4133
f6b0eb4e44cf
parent 4037
da91efe96a93
child 5732
b2e698d2276c
     1.1 --- a/src/share/vm/interpreter/linkResolver.hpp	Fri Sep 28 14:36:20 2012 -0700
     1.2 +++ b/src/share/vm/interpreter/linkResolver.hpp	Mon Oct 01 14:50:10 2012 -0700
     1.3 @@ -76,12 +76,13 @@
     1.4    methodHandle _selected_method;        // dynamic (actual) target method
     1.5    int          _vtable_index;           // vtable index of selected method
     1.6    Handle       _resolved_appendix;      // extra argument in constant pool (if CPCE::has_appendix)
     1.7 +  Handle       _resolved_method_type;   // MethodType (for invokedynamic and invokehandle call sites)
     1.8  
     1.9 -  void         set_static(   KlassHandle resolved_klass,                             methodHandle resolved_method                                                , TRAPS);
    1.10 -  void         set_interface(KlassHandle resolved_klass, KlassHandle selected_klass, methodHandle resolved_method, methodHandle selected_method                  , TRAPS);
    1.11 -  void         set_virtual(  KlassHandle resolved_klass, KlassHandle selected_klass, methodHandle resolved_method, methodHandle selected_method, int vtable_index, TRAPS);
    1.12 -  void         set_handle(                                                           methodHandle resolved_method,   Handle resolved_appendix,                     TRAPS);
    1.13 -  void         set_common(   KlassHandle resolved_klass, KlassHandle selected_klass, methodHandle resolved_method, methodHandle selected_method, int vtable_index, TRAPS);
    1.14 +  void         set_static(   KlassHandle resolved_klass,                             methodHandle resolved_method                                                       , TRAPS);
    1.15 +  void         set_interface(KlassHandle resolved_klass, KlassHandle selected_klass, methodHandle resolved_method, methodHandle selected_method                         , TRAPS);
    1.16 +  void         set_virtual(  KlassHandle resolved_klass, KlassHandle selected_klass, methodHandle resolved_method, methodHandle selected_method, int vtable_index       , TRAPS);
    1.17 +  void         set_handle(                                                           methodHandle resolved_method, Handle resolved_appendix, Handle resolved_method_type, TRAPS);
    1.18 +  void         set_common(   KlassHandle resolved_klass, KlassHandle selected_klass, methodHandle resolved_method, methodHandle selected_method, int vtable_index       , TRAPS);
    1.19  
    1.20    friend class LinkResolver;
    1.21  
    1.22 @@ -91,6 +92,7 @@
    1.23    methodHandle resolved_method() const           { return _resolved_method; }
    1.24    methodHandle selected_method() const           { return _selected_method; }
    1.25    Handle       resolved_appendix() const         { return _resolved_appendix; }
    1.26 +  Handle       resolved_method_type() const      { return _resolved_method_type; }
    1.27  
    1.28    BasicType    result_type() const               { return selected_method()->result_type(); }
    1.29    bool         has_vtable_index() const          { return _vtable_index >= 0; }
    1.30 @@ -113,7 +115,7 @@
    1.31    static void lookup_instance_method_in_klasses (methodHandle& result, KlassHandle klass, Symbol* name, Symbol* signature, TRAPS);
    1.32    static void lookup_method_in_interfaces       (methodHandle& result, KlassHandle klass, Symbol* name, Symbol* signature, TRAPS);
    1.33    static void lookup_polymorphic_method         (methodHandle& result, KlassHandle klass, Symbol* name, Symbol* signature,
    1.34 -                                                 KlassHandle current_klass, Handle* appendix_result_or_null, TRAPS);
    1.35 +                                                 KlassHandle current_klass, Handle *appendix_result_or_null, Handle *method_type_result, TRAPS);
    1.36  
    1.37    static int vtable_index_of_miranda_method(KlassHandle klass, Symbol* name, Symbol* signature, TRAPS);
    1.38  

mercurial