src/share/classes/java/lang/invoke/MemberName.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File jdk Cdiff src/share/classes/java/lang/invoke/MemberName.java

src/share/classes/java/lang/invoke/MemberName.java

Print this page
rev 10274 : 8050052: Small cleanups in java.lang.invoke code
Reviewed-by: ?

*** 325,338 **** private MemberName changeReferenceKind(byte refKind, byte oldKind) { assert(getReferenceKind() == oldKind); assert(MethodHandleNatives.refKindIsValid(refKind)); flags += (((int)refKind - oldKind) << MN_REFERENCE_KIND_SHIFT); - // if (isConstructor() && refKind != REF_newInvokeSpecial) - // flags += (IS_METHOD - IS_CONSTRUCTOR); - // else if (refKind == REF_newInvokeSpecial && isMethod()) - // flags += (IS_CONSTRUCTOR - IS_METHOD); return this; } private boolean testFlags(int mask, int value) { return (flags & mask) == value; --- 325,334 ----
*** 342,363 **** } private boolean testAnyFlags(int mask) { return !testFlags(mask, 0); } ! /** Utility method to query if this member is a method handle invocation (invoke or invokeExact). */ public boolean isMethodHandleInvoke() { ! final int bits = MH_INVOKE_MODS; final int negs = Modifier.STATIC; if (testFlags(bits | negs, bits) && clazz == MethodHandle.class) { return isMethodHandleInvokeName(name); } return false; } public static boolean isMethodHandleInvokeName(String name) { ! return name.equals("invoke") || name.equals("invokeExact"); } private static final int MH_INVOKE_MODS = Modifier.NATIVE | Modifier.FINAL | Modifier.PUBLIC; /** Utility method to query the modifier flags of this member. */ public boolean isStatic() { --- 338,368 ---- } private boolean testAnyFlags(int mask) { return !testFlags(mask, 0); } ! /** Utility method to query if this member is a method handle invocation (invoke or invokeExact). ! * Also returns true for the non-public MH.invokeBasic. ! */ public boolean isMethodHandleInvoke() { ! final int bits = MH_INVOKE_MODS &~ Modifier.PUBLIC; final int negs = Modifier.STATIC; if (testFlags(bits | negs, bits) && clazz == MethodHandle.class) { return isMethodHandleInvokeName(name); } return false; } public static boolean isMethodHandleInvokeName(String name) { ! switch (name) { ! case "invoke": ! case "invokeExact": ! case "invokeBasic": // internal sig-poly method ! return true; ! default: ! return false; ! } } private static final int MH_INVOKE_MODS = Modifier.NATIVE | Modifier.FINAL | Modifier.PUBLIC; /** Utility method to query the modifier flags of this member. */ public boolean isStatic() {
*** 718,737 **** */ public MemberName(Class<?> defClass, String name, Class<?> type, byte refKind) { init(defClass, name, type, flagsMods(IS_FIELD, 0, refKind)); initResolved(false); } ! /** Create a field or type name from the given components: Declaring class, name, type. ! * The declaring class may be supplied as null if this is to be a bare name and type. ! * The modifier flags default to zero. ! * The resulting name will in an unresolved state. ! */ ! public MemberName(Class<?> defClass, String name, Class<?> type, Void unused) { ! this(defClass, name, type, REF_NONE); ! initResolved(false); ! } ! /** Create a method or constructor name from the given components: Declaring class, name, type, modifiers. * It will be a constructor if and only if the name is {@code "&lt;init&gt;"}. * The declaring class may be supplied as null if this is to be a bare name and type. * The last argument is optional, a boolean which requests REF_invokeSpecial. * The resulting name will in an unresolved state. */ --- 723,734 ---- */ public MemberName(Class<?> defClass, String name, Class<?> type, byte refKind) { init(defClass, name, type, flagsMods(IS_FIELD, 0, refKind)); initResolved(false); } ! /** Create a method or constructor name from the given components: ! * Declaring class, name, type, reference kind. * It will be a constructor if and only if the name is {@code "&lt;init&gt;"}. * The declaring class may be supplied as null if this is to be a bare name and type. * The last argument is optional, a boolean which requests REF_invokeSpecial. * The resulting name will in an unresolved state. */
src/share/classes/java/lang/invoke/MemberName.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File