< prev index next >
src/java.base/share/classes/java/lang/invoke/MethodHandles.java
Print this page
rev 59151 : imported patch viewAs
@@ -3280,15 +3280,14 @@
* @throws NullPointerException if the target is {@code null}
* @see MethodHandleInfo
* @since 1.8
*/
public MethodHandleInfo revealDirect(MethodHandle target) {
- MemberName member = target.internalMemberName();
- if (member == null || (!member.isResolved() &&
- !member.isMethodHandleInvoke() &&
- !member.isVarHandleMethodInvoke()))
+ if (!target.isCrackable()) {
throw newIllegalArgumentException("not a direct method handle");
+ }
+ MemberName member = target.internalMemberName();
Class<?> defc = member.getDeclaringClass();
byte refKind = member.getReferenceKind();
assert(MethodHandleNatives.refKindIsValid(refKind));
if (refKind == REF_invokeSpecial && !target.isInvokeSpecial())
// Devirtualized method invocation is usually formally virtual.
< prev index next >