src/java.base/share/classes/java/lang/invoke/MethodHandle.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/java.base/share/classes/java/lang/invoke/MethodHandle.java	Fri Jun 26 17:30:23 2015
--- new/src/java.base/share/classes/java/lang/invoke/MethodHandle.java	Fri Jun 26 17:30:22 2015

*** 25,34 **** --- 25,35 ---- package java.lang.invoke; import java.util.*; + import jdk.internal.HotSpotIntrinsicCandidate; import static java.lang.invoke.MethodHandleStatics.*; /** * A method handle is a typed, directly executable reference to an underlying method,
*** 474,483 **** --- 475,485 ---- * @param args the signature-polymorphic parameter list, statically represented using varargs * @return the signature-polymorphic result, statically represented using {@code Object} * @throws WrongMethodTypeException if the target's type is not identical with the caller's symbolic type descriptor * @throws Throwable anything thrown by the underlying method propagates unchanged through the method handle call */ + @HotSpotIntrinsicCandidate public final native @PolymorphicSignature Object invokeExact(Object... args) throws Throwable; /** * Invokes the method handle, allowing any caller type descriptor, * and optionally performing conversions on arguments and return values.
*** 511,520 **** --- 513,523 ---- * @return the signature-polymorphic result, statically represented using {@code Object} * @throws WrongMethodTypeException if the target's type cannot be adjusted to the caller's symbolic type descriptor * @throws ClassCastException if the target's type can be adjusted to the caller, but a reference cast fails * @throws Throwable anything thrown by the underlying method propagates unchanged through the method handle call */ + @HotSpotIntrinsicCandidate public final native @PolymorphicSignature Object invoke(Object... args) throws Throwable; /** * Private method for trusted invocation of a method handle respecting simplified signatures. * Type mismatches will not throw {@code WrongMethodTypeException}, but could crash the JVM.
*** 530,575 **** --- 533,583 ---- * The caller can assume that the incoming result value is part of the range * of the callee's return type. * @param args the signature-polymorphic parameter list, statically represented using varargs * @return the signature-polymorphic result, statically represented using {@code Object} */ + @HotSpotIntrinsicCandidate /*non-public*/ final native @PolymorphicSignature Object invokeBasic(Object... args) throws Throwable; /** * Private method for trusted invocation of a MemberName of kind {@code REF_invokeVirtual}. * The caller signature is restricted to basic types as with {@code invokeBasic}. * The trailing (not leading) argument must be a MemberName. * @param args the signature-polymorphic parameter list, statically represented using varargs * @return the signature-polymorphic result, statically represented using {@code Object} */ + @HotSpotIntrinsicCandidate /*non-public*/ static native @PolymorphicSignature Object linkToVirtual(Object... args) throws Throwable; /** * Private method for trusted invocation of a MemberName of kind {@code REF_invokeStatic}. * The caller signature is restricted to basic types as with {@code invokeBasic}. * The trailing (not leading) argument must be a MemberName. * @param args the signature-polymorphic parameter list, statically represented using varargs * @return the signature-polymorphic result, statically represented using {@code Object} */ + @HotSpotIntrinsicCandidate /*non-public*/ static native @PolymorphicSignature Object linkToStatic(Object... args) throws Throwable; /** * Private method for trusted invocation of a MemberName of kind {@code REF_invokeSpecial}. * The caller signature is restricted to basic types as with {@code invokeBasic}. * The trailing (not leading) argument must be a MemberName. * @param args the signature-polymorphic parameter list, statically represented using varargs * @return the signature-polymorphic result, statically represented using {@code Object} */ + @HotSpotIntrinsicCandidate /*non-public*/ static native @PolymorphicSignature Object linkToSpecial(Object... args) throws Throwable; /** * Private method for trusted invocation of a MemberName of kind {@code REF_invokeInterface}. * The caller signature is restricted to basic types as with {@code invokeBasic}. * The trailing (not leading) argument must be a MemberName. * @param args the signature-polymorphic parameter list, statically represented using varargs * @return the signature-polymorphic result, statically represented using {@code Object} */ + @HotSpotIntrinsicCandidate /*non-public*/ static native @PolymorphicSignature Object linkToInterface(Object... args) throws Throwable; /** * Performs a variable arity invocation, passing the arguments in the given list * to the method handle, as if via an inexact {@link #invoke invoke} from a call site

src/java.base/share/classes/java/lang/invoke/MethodHandle.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File