src/share/vm/ci/ciMethodHandle.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
7071307 Cdiff src/share/vm/ci/ciMethodHandle.hpp
src/share/vm/ci/ciMethodHandle.hpp
Print this page
*** 35,57 ****
class ciMethodHandle : public ciInstance {
private:
ciMethod* _callee;
ciMethod* _caller;
ciCallProfile _profile;
// Return an adapter for this MethodHandle.
! ciMethod* get_adapter_impl(bool is_invokedynamic) const;
! ciMethod* get_adapter( bool is_invokedynamic) const;
protected:
! void print_impl(outputStream* st);
public:
ciMethodHandle(instanceHandle h_i) :
ciInstance(h_i),
_callee(NULL),
! _caller(NULL)
{}
// What kind of ciObject is this?
bool is_method_handle() const { return true; }
--- 35,61 ----
class ciMethodHandle : public ciInstance {
private:
ciMethod* _callee;
ciMethod* _caller;
ciCallProfile _profile;
+ ciMethod* _method_handle_adapter;
+ ciMethod* _invokedynamic_adapter;
// Return an adapter for this MethodHandle.
! ciMethod* get_adapter_impl(bool is_invokedynamic);
! ciMethod* get_adapter( bool is_invokedynamic);
protected:
! void print_chain_impl(outputStream* st) PRODUCT_RETURN;
public:
ciMethodHandle(instanceHandle h_i) :
ciInstance(h_i),
_callee(NULL),
! _caller(NULL),
! _method_handle_adapter(NULL),
! _invokedynamic_adapter(NULL)
{}
// What kind of ciObject is this?
bool is_method_handle() const { return true; }
*** 58,69 ****
void set_callee(ciMethod* m) { _callee = m; }
void set_caller(ciMethod* m) { _caller = m; }
void set_call_profile(ciCallProfile profile) { _profile = profile; }
// Return an adapter for a MethodHandle call.
! ciMethod* get_method_handle_adapter() const { return get_adapter(false); }
// Return an adapter for an invokedynamic call.
! ciMethod* get_invokedynamic_adapter() const { return get_adapter(true); }
};
#endif // SHARE_VM_CI_CIMETHODHANDLE_HPP
--- 62,85 ----
void set_callee(ciMethod* m) { _callee = m; }
void set_caller(ciMethod* m) { _caller = m; }
void set_call_profile(ciCallProfile profile) { _profile = profile; }
// Return an adapter for a MethodHandle call.
! ciMethod* get_method_handle_adapter() {
! if (_method_handle_adapter == NULL) {
! _method_handle_adapter = get_adapter(false);
! }
! return _method_handle_adapter;
! }
// Return an adapter for an invokedynamic call.
! ciMethod* get_invokedynamic_adapter() {
! if (_invokedynamic_adapter == NULL) {
! _invokedynamic_adapter = get_adapter(true);
! }
! return _invokedynamic_adapter;
! }
!
! void print_chain(outputStream* st = tty) PRODUCT_RETURN;
};
#endif // SHARE_VM_CI_CIMETHODHANDLE_HPP
src/share/vm/ci/ciMethodHandle.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File