mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 19:44:41 +02:00
6939224: MethodHandle.invokeGeneric needs to perform the correct set of conversions
Reviewed-by: never
This commit is contained in:
parent
7be7d19ba5
commit
52e3d262a1
17 changed files with 227 additions and 57 deletions
|
@ -333,8 +333,7 @@ MethodHandleWalker::walk(TRAPS) {
|
|||
ArgToken arglist[2];
|
||||
arglist[0] = arg; // outgoing value
|
||||
arglist[1] = ArgToken(); // sentinel
|
||||
assert(false, "I think the argument count must be 1 instead of 0");
|
||||
arg = make_invoke(NULL, boxer, Bytecodes::_invokevirtual, false, 0, &arglist[0], CHECK_(empty));
|
||||
arg = make_invoke(NULL, boxer, Bytecodes::_invokevirtual, false, 1, &arglist[0], CHECK_(empty));
|
||||
change_argument(src, arg_slot, T_OBJECT, arg);
|
||||
break;
|
||||
}
|
||||
|
@ -1398,7 +1397,9 @@ public:
|
|||
|
||||
extern "C"
|
||||
void print_method_handle(oop mh) {
|
||||
if (java_dyn_MethodHandle::is_instance(mh)) {
|
||||
if (!mh->is_oop()) {
|
||||
tty->print_cr("*** not a method handle: "INTPTR_FORMAT, (intptr_t)mh);
|
||||
} else if (java_dyn_MethodHandle::is_instance(mh)) {
|
||||
//MethodHandlePrinter::print(mh);
|
||||
} else {
|
||||
tty->print("*** not a method handle: ");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue