Merge
authorroland
Fri, 24 Sep 2010 13:14:32 -0700
changeset 6746 c12892ba621d
parent 6745 a34ef8968a84 (current diff)
parent 6744 dd08c62a68c7 (diff)
child 6747 ab166511728e
Merge
--- a/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp	Tue Dec 29 19:08:54 2009 +0100
+++ b/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp	Fri Sep 24 13:14:32 2010 -0700
@@ -346,7 +346,7 @@
     if (stack_dump_count > 64)  stack_dump_count = 48;
     for (i = 0; i < stack_dump_count; i += 4) {
       printf(" dump at SP[%d] "INTPTR_FORMAT": "INTPTR_FORMAT" "INTPTR_FORMAT" "INTPTR_FORMAT" "INTPTR_FORMAT"\n",
-             i, &entry_sp[i+0], entry_sp[i+0], entry_sp[i+1], entry_sp[i+2], entry_sp[i+3]);
+             i, (intptr_t) &entry_sp[i+0], entry_sp[i+0], entry_sp[i+1], entry_sp[i+2], entry_sp[i+3]);
     }
     print_method_handle(mh);
   }
--- a/hotspot/src/share/vm/ci/ciMethod.cpp	Tue Dec 29 19:08:54 2009 +0100
+++ b/hotspot/src/share/vm/ci/ciMethod.cpp	Fri Sep 24 13:14:32 2010 -0700
@@ -735,7 +735,11 @@
 // Return true if the method is an instance of one of the two
 // signature-polymorphic MethodHandle methods, invokeExact or invokeGeneric.
 bool ciMethod::is_method_handle_invoke() const {
-  if (!is_loaded())  return false;
+  if (!is_loaded()) {
+    bool flag = (holder()->name() == ciSymbol::java_dyn_MethodHandle() &&
+                 methodOopDesc::is_method_handle_invoke_name(name()->sid()));
+    return flag;
+  }
   VM_ENTRY_MARK;
   return get_methodOop()->is_method_handle_invoke();
 }