Mercurial > hg > openjdk > jdk8u > jdk
changeset 11792:c387bd2fb7db jdk8u101-b05
8154475: Clean up lookup visibility
Reviewed-by: vlivanov, mhaupt, ahgross
author | jrose |
---|---|
date | Sat, 23 Apr 2016 05:11:30 -0700 |
parents | f4880807ff10 |
children | 78376dde5cc3 |
files | src/share/classes/java/lang/invoke/DirectMethodHandle.java src/share/classes/java/lang/invoke/LambdaForm.java src/share/classes/java/lang/invoke/MemberName.java src/share/classes/java/lang/invoke/MethodHandles.java |
diffstat | 4 files changed, 7 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/java/lang/invoke/DirectMethodHandle.java Sat May 21 23:44:20 2016 -0700 +++ b/src/share/classes/java/lang/invoke/DirectMethodHandle.java Sat Apr 23 05:11:30 2016 -0700 @@ -158,7 +158,7 @@ private static LambdaForm preparedLambdaForm(MemberName m) { assert(m.isInvocable()) : m; // call preparedFieldLambdaForm instead MethodType mtype = m.getInvocationType().basicType(); - assert(!m.isMethodHandleInvoke() || "invokeBasic".equals(m.getName())) : m; + assert(!m.isMethodHandleInvoke()) : m; int which; switch (m.getReferenceKind()) { case REF_invokeVirtual: which = LF_INVVIRTUAL; break;
--- a/src/share/classes/java/lang/invoke/LambdaForm.java Sat May 21 23:44:20 2016 -0700 +++ b/src/share/classes/java/lang/invoke/LambdaForm.java Sat Apr 23 05:11:30 2016 -0700 @@ -1034,7 +1034,7 @@ this.member = member; this.resolvedHandle = resolvedHandle; // The following assert is almost always correct, but will fail for corner cases, such as PrivateInvokeTest. - //assert(!isInvokeBasic()); + //assert(!isInvokeBasic(member)); } NamedFunction(MethodType basicInvokerType) { assert(basicInvokerType == basicInvokerType.basicType()) : basicInvokerType; @@ -1045,13 +1045,13 @@ // necessary to pass BigArityTest this.member = Invokers.invokeBasicMethod(basicInvokerType); } - assert(isInvokeBasic()); + assert(isInvokeBasic(member)); } - private boolean isInvokeBasic() { + private static boolean isInvokeBasic(MemberName member) { return member != null && - member.isMethodHandleInvoke() && - "invokeBasic".equals(member.getName()); + member.getDeclaringClass() == MethodHandle.class && + "invokeBasic".equals(member.getName()); } // The next 3 constructors are used to break circular dependencies on MH.invokeStatic, etc. @@ -1191,7 +1191,7 @@ assert(mh.type().basicType() == MethodType.genericMethodType(arity).changeReturnType(rtype)) : Arrays.asList(mh, rtype, arity); MemberName member = mh.internalMemberName(); - if (member != null && member.getName().equals("invokeBasic") && member.isMethodHandleInvoke()) { + if (isInvokeBasic(member)) { assert(arity > 0); assert(a[0] instanceof MethodHandle); MethodHandle mh2 = (MethodHandle) a[0];
--- a/src/share/classes/java/lang/invoke/MemberName.java Sat May 21 23:44:20 2016 -0700 +++ b/src/share/classes/java/lang/invoke/MemberName.java Sat Apr 23 05:11:30 2016 -0700 @@ -341,7 +341,6 @@ } /** 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; @@ -356,7 +355,6 @@ switch (name) { case "invoke": case "invokeExact": - case "invokeBasic": // internal sig-poly method return true; default: return false;
--- a/src/share/classes/java/lang/invoke/MethodHandles.java Sat May 21 23:44:20 2016 -0700 +++ b/src/share/classes/java/lang/invoke/MethodHandles.java Sat Apr 23 05:11:30 2016 -0700 @@ -864,8 +864,6 @@ return invoker(type); if ("invokeExact".equals(name)) return exactInvoker(type); - if ("invokeBasic".equals(name)) - return basicInvoker(type); assert(!MemberName.isMethodHandleInvokeName(name)); return null; }