equal
deleted
inserted
replaced
655 oop mhtype = java_lang_invoke_MethodHandle::type(method_handle); |
655 oop mhtype = java_lang_invoke_MethodHandle::type(method_handle); |
656 bool is_exact = mhtype == method_type; |
656 bool is_exact = mhtype == method_type; |
657 if (!is_exact) { |
657 if (!is_exact) { |
658 if (method->intrinsic_id() == vmIntrinsics::_invokeExact) { |
658 if (method->intrinsic_id() == vmIntrinsics::_invokeExact) { |
659 CALL_VM_NOCHECK_NOFIX( |
659 CALL_VM_NOCHECK_NOFIX( |
660 InterpreterRuntime::throw_WrongMethodTypeException( |
660 SharedRuntime::throw_WrongMethodTypeException( |
661 thread, method_type, mhtype)); |
661 thread, method_type, mhtype)); |
662 // NB all oops trashed! |
662 // NB all oops trashed! |
663 assert(HAS_PENDING_EXCEPTION, "should do"); |
663 assert(HAS_PENDING_EXCEPTION, "should do"); |
664 stack->set_sp(unwind_sp); |
664 stack->set_sp(unwind_sp); |
665 return 0; |
665 return 0; |
671 // "genericInvoker") is really really odd. I'm hoping it's trying |
671 // "genericInvoker") is really really odd. I'm hoping it's trying |
672 // to accomodate odd VM/class library combinations I can ignore. |
672 // to accomodate odd VM/class library combinations I can ignore. |
673 oop adapter = java_lang_invoke_MethodTypeForm::genericInvoker(form); |
673 oop adapter = java_lang_invoke_MethodTypeForm::genericInvoker(form); |
674 if (adapter == NULL) { |
674 if (adapter == NULL) { |
675 CALL_VM_NOCHECK_NOFIX( |
675 CALL_VM_NOCHECK_NOFIX( |
676 InterpreterRuntime::throw_WrongMethodTypeException( |
676 SharedRuntime::throw_WrongMethodTypeException( |
677 thread, method_type, mhtype)); |
677 thread, method_type, mhtype)); |
678 // NB all oops trashed! |
678 // NB all oops trashed! |
679 assert(HAS_PENDING_EXCEPTION, "should do"); |
679 assert(HAS_PENDING_EXCEPTION, "should do"); |
680 stack->set_sp(unwind_sp); |
680 stack->set_sp(unwind_sp); |
681 return 0; |
681 return 0; |