hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
changeset 10004 190e88f7edd1
parent 9636 363ca5579aff
child 12726 0a3b759f8109
equal deleted inserted replaced
9982:edcf2d7e7b84 10004:190e88f7edd1
   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;