< prev index next >
src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java
Print this page
@@ -487,27 +487,27 @@
int collectArg = type.parameterCount() - 1;
int newArity = newType.parameterCount();
if (newArity == collectArg+1 &&
type.parameterType(collectArg).isAssignableFrom(newType.parameterType(collectArg))) {
// if arity and trailing parameter are compatible, do normal thing
- return asTypeCache = asFixedArity().asType(newType);
+ return asFixedArity().asType(newType);
}
// check cache
MethodHandle acc = asCollectorCache;
if (acc != null && acc.type().parameterCount() == newArity)
- return asTypeCache = acc.asType(newType);
+ return acc.asType(newType);
// build and cache a collector
int arrayLength = newArity - collectArg;
MethodHandle collector;
try {
collector = asFixedArity().asCollector(arrayType, arrayLength);
assert(collector.type().parameterCount() == newArity) : "newArity="+newArity+" but collector="+collector;
} catch (IllegalArgumentException ex) {
throw new WrongMethodTypeException("cannot build collector", ex);
}
asCollectorCache = collector;
- return asTypeCache = collector.asType(newType);
+ return collector.asType(newType);
}
@Override
boolean viewAsTypeChecks(MethodType newType, boolean strict) {
super.viewAsTypeChecks(newType, true);
@@ -835,11 +835,11 @@
lform = countingFormProducer.apply(newTarget);
wrapper = new CountingWrapper(newTarget, lform, countingFormProducer, nonCountingFormProducer, DONT_INLINE_THRESHOLD);
} else {
wrapper = newTarget; // no need for a counting wrapper anymore
}
- return (asTypeCache = wrapper);
+ return wrapper;
}
boolean countDown() {
int c = count;
if (c <= 1) {
@@ -1302,11 +1302,11 @@
}
@Override
public MethodHandle asTypeUncached(MethodType newType) {
// This MH is an alias for target, except for the MemberName
// Drop the MemberName if there is any conversion.
- return asTypeCache = target.asType(newType);
+ return target.asType(newType);
}
}
static MethodHandle makeWrappedMember(MethodHandle target, MemberName member, boolean isInvokeSpecial) {
if (member.equals(target.internalMemberName()) && isInvokeSpecial == target.isInvokeSpecial())
@@ -1351,11 +1351,11 @@
@Override
public MethodHandle asTypeUncached(MethodType newType) {
// This MH is an alias for target, except for the intrinsic name
// Drop the name if there is any conversion.
- return asTypeCache = target.asType(newType);
+ return target.asType(newType);
}
@Override
String internalProperties() {
return super.internalProperties() +
< prev index next >