# HG changeset patch # User twisti # Date 1285325503 25200 # Node ID c93c652551b57b227519f2d100c92433dab65066 # Parent c40600e8531110279bc97e963391a9dcf6fee752 6986944: JSR 292 assert(caller_nm->is_method_handle_return(caller_frame.pc())) failed: must be MH call site Reviewed-by: never, kvn diff -r c40600e85311 -r c93c652551b5 src/cpu/x86/vm/methodHandles_x86.cpp --- a/src/cpu/x86/vm/methodHandles_x86.cpp Wed Sep 22 23:51:03 2010 -0700 +++ b/src/cpu/x86/vm/methodHandles_x86.cpp Fri Sep 24 03:51:43 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); } diff -r c40600e85311 -r c93c652551b5 src/share/vm/ci/ciMethod.cpp --- a/src/share/vm/ci/ciMethod.cpp Wed Sep 22 23:51:03 2010 -0700 +++ b/src/share/vm/ci/ciMethod.cpp Fri Sep 24 03:51:43 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(); }