< prev index next >
src/hotspot/share/interpreter/rewriter.cpp
Print this page
*** 203,213 ****
} else {
rewrite_member_reference(bcp, offset, reverse);
}
}
-
// Adjust the invocation bytecode for a signature-polymorphic method (MethodHandle.invoke, etc.)
void Rewriter::maybe_rewrite_invokehandle(address opc, int cp_index, int cache_index, bool reverse) {
if (!reverse) {
if ((*opc) == (u1)Bytecodes::_invokevirtual ||
// allow invokespecial as an alias, although it would be very odd:
--- 203,212 ----
*** 464,473 ****
--- 463,473 ----
}
}
// fall through
case Bytecodes::_getstatic : // fall through
case Bytecodes::_getfield : // fall through
+ case Bytecodes::_withfield : // fall through but may require more checks for correctness
case Bytecodes::_invokevirtual : // fall through
case Bytecodes::_invokestatic :
case Bytecodes::_invokeinterface:
case Bytecodes::_invokehandle : // if reverse=true
rewrite_member_reference(bcp, prefix_length+1, reverse);
< prev index next >