src/share/vm/ci/ciMethod.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/ci/ciMethod.cpp	Mon Apr 26 03:24:24 2010
--- new/src/share/vm/ci/ciMethod.cpp	Mon Apr 26 03:24:24 2010

*** 690,706 **** --- 690,711 ---- // ------------------------------------------------------------------ // invokedynamic support // bool ciMethod::is_method_handle_invoke() const { check_is_loaded(); bool flag = ((flags().as_int() & JVM_MH_INVOKE_BITS) == JVM_MH_INVOKE_BITS); + bool flag = ((holder()->name() == ciSymbol::java_dyn_MethodHandle() && + name() == ciSymbol::invoke_name()) || + holder()->name() == ciSymbol::java_dyn_InvokeDynamic()); #ifdef ASSERT + if (is_loaded()) { + bool flag2 = ((flags().as_int() & JVM_MH_INVOKE_BITS) == JVM_MH_INVOKE_BITS); { VM_ENTRY_MARK; ! bool flag2 = get_methodOop()->is_method_handle_invoke(); ! assert(flag == flag2, "consistent"); ! bool flag3 = get_methodOop()->is_method_handle_invoke(); ! assert(flag2 == flag3, "consistent"); + assert(flag == flag3, "consistent"); + } } #endif //ASSERT return flag; }

src/share/vm/ci/ciMethod.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File