hotspot/src/share/vm/prims/methodHandleWalk.cpp
changeset 6463 f4362c8da849
parent 6453 970dc585ab63
child 7397 5b173b4ca846
--- 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: ");