--- a/hotspot/src/share/vm/prims/methodHandleWalk.cpp Mon Sep 13 16:45:00 2010 -0700
+++ b/hotspot/src/share/vm/prims/methodHandleWalk.cpp Mon Sep 13 23:24:30 2010 -0700
@@ -333,8 +333,7 @@
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 @@
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: ");