Print this page


Split Close
Expand all
Collapse all
          --- old/src/share/vm/ci/ciMethodHandle.hpp
          +++ new/src/share/vm/ci/ciMethodHandle.hpp
↓ open down ↓ 17 lines elided ↑ open up ↑
  18   18   *
  19   19   * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20   20   * or visit www.oracle.com if you need additional information or have any
  21   21   * questions.
  22   22   *
  23   23   */
  24   24  
  25   25  #ifndef SHARE_VM_CI_CIMETHODHANDLE_HPP
  26   26  #define SHARE_VM_CI_CIMETHODHANDLE_HPP
  27   27  
       28 +#include "ci/ciCallProfile.hpp"
  28   29  #include "ci/ciInstance.hpp"
  29   30  #include "prims/methodHandles.hpp"
  30   31  
  31   32  // ciMethodHandle
  32   33  //
  33   34  // The class represents a java.lang.invoke.MethodHandle object.
  34   35  class ciMethodHandle : public ciInstance {
  35   36  private:
  36      -  ciMethod* _callee;
       37 +  ciMethod*      _callee;
       38 +  ciCallProfile* _profile;
  37   39  
  38   40    // Return an adapter for this MethodHandle.
  39   41    ciMethod* get_adapter(bool is_invokedynamic) const;
  40   42  
  41   43  protected:
  42   44    void print_impl(outputStream* st);
  43   45  
  44   46  public:
  45   47    ciMethodHandle(instanceHandle h_i) : ciInstance(h_i) {};
  46   48  
  47   49    // What kind of ciObject is this?
  48   50    bool is_method_handle() const { return true; }
  49   51  
  50   52    ciMethod* callee() const { return _callee; }
  51   53    void  set_callee(ciMethod* m) { _callee = m; }
  52   54  
       55 +  ciCallProfile*     call_profile() const                 { return _profile;           }
       56 +  void           set_call_profile(ciCallProfile* profile) {        _profile = profile; }
       57 +
  53   58    // Return an adapter for a MethodHandle call.
  54   59    ciMethod* get_method_handle_adapter() const {
  55   60      return get_adapter(false);
  56   61    }
  57   62  
  58   63    // Return an adapter for an invokedynamic call.
  59   64    ciMethod* get_invokedynamic_adapter() const {
  60   65      return get_adapter(true);
  61   66    }
  62   67  };
  63   68  
  64   69  #endif // SHARE_VM_CI_CIMETHODHANDLE_HPP
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX