mirror of
https://github.com/openjdk/jdk.git
synced 2026-05-09 04:59:33 +00:00
8079682: [mlvm] remove SAM code in MHTransformationGen
Remove SAM code from the test and remove related dead code Reviewed-by: iignatyev
This commit is contained in:
parent
013e6fd595
commit
b2042fe0ca
@ -47,7 +47,6 @@ import vm.mlvm.meth.share.transform.v2.MHMacroTF;
|
||||
import vm.mlvm.meth.share.transform.v2.MHOutboundCallTF;
|
||||
import vm.mlvm.meth.share.transform.v2.MHOutboundVirtualCallTF;
|
||||
import vm.mlvm.meth.share.transform.v2.MHPermuteTF;
|
||||
import vm.mlvm.meth.share.transform.v2.MHSamTF;
|
||||
import vm.mlvm.meth.share.transform.v2.MHTF;
|
||||
import vm.mlvm.meth.share.transform.v2.MHTFPair;
|
||||
import vm.mlvm.meth.share.transform.v2.MHThrowCatchTFPair;
|
||||
@ -62,7 +61,6 @@ public class MHTransformationGen {
|
||||
|
||||
private static final boolean FILTER_OUT_KNOWN_BUGS = false;
|
||||
|
||||
private static final boolean USE_SAM = false; // Disabled in JDK7
|
||||
private static final boolean USE_THROW_CATCH = false; // Test bugs
|
||||
|
||||
public static class ThrowCatchTestException extends Throwable {
|
||||
@ -104,7 +102,7 @@ public class MHTransformationGen {
|
||||
MHTF tf = null;
|
||||
MHTFPair tfPair = null;
|
||||
|
||||
int nextCase = nextInt(12);
|
||||
int nextCase = nextInt(11);
|
||||
|
||||
Env.traceDebug("Adding case #" + nextCase);
|
||||
try {
|
||||
@ -339,15 +337,7 @@ public class MHTransformationGen {
|
||||
}
|
||||
break;
|
||||
|
||||
case 9: { // SAM
|
||||
if ( ! USE_SAM )
|
||||
break;
|
||||
|
||||
tf = new MHSamTF(lastCall);
|
||||
}
|
||||
break;
|
||||
|
||||
case 10: { // Envelope argument into array
|
||||
case 9: { // Envelope argument into array
|
||||
if ( lastArgs.length >= 0 )
|
||||
break;
|
||||
|
||||
@ -358,7 +348,7 @@ public class MHTransformationGen {
|
||||
}
|
||||
break;
|
||||
|
||||
case 11: { // Collect + spread
|
||||
case 10: { // Collect + spread
|
||||
if ( nextInt(1) == 0 )
|
||||
tf = new MHCollectSpreadTF(lastCall);
|
||||
else
|
||||
|
||||
@ -1,93 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package vm.mlvm.meth.share.transform.v2;
|
||||
|
||||
import java.lang.invoke.MethodHandle;
|
||||
import java.lang.invoke.MethodHandles;
|
||||
import java.lang.invoke.MethodType;
|
||||
|
||||
public class MHSamTF extends MHBasicUnaryTF {
|
||||
|
||||
public static interface SAM {
|
||||
public Object run(Object[] o) throws Throwable;
|
||||
}
|
||||
|
||||
public static class SAMCaller {
|
||||
private final SAM sam;
|
||||
|
||||
public SAMCaller(SAM sam) {
|
||||
this.sam = sam;
|
||||
}
|
||||
|
||||
public Object callSAM(Object[] o) throws Throwable {
|
||||
return sam.run(o);
|
||||
}
|
||||
}
|
||||
|
||||
public MHSamTF(MHCall target) {
|
||||
super(target);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected MethodHandle computeInboundMH(MethodHandle targetMH) throws NoSuchMethodException, IllegalAccessException {
|
||||
throw new RuntimeException("Internal error: Functionality is disabled in JDK7");
|
||||
/*
|
||||
MethodHandle mh = targetMH.asSpreader(Object[].class, targetMH.type().parameterCount());
|
||||
|
||||
SAM sam = MethodHandles.asInstance(mh, SAM.class);
|
||||
|
||||
// The checks below aimed to increase coverage
|
||||
MethodHandle mhCopy = MethodHandles.wrapperInstanceTarget(sam);
|
||||
if ( ! mh.equals(mhCopy) ) {
|
||||
throw new IllegalArgumentException("wrapperInstanceTarget returned a different MH: [" + mhCopy + "]; original was [" + mh + "]");
|
||||
}
|
||||
|
||||
Class<?> samClass = MethodHandles.wrapperInstanceType(sam);
|
||||
if ( ! SAM.class.equals(samClass) ) {
|
||||
throw new IllegalArgumentException("wrapperInstanceType returned a different class: [" + samClass + "]; original was [" + SAM.class + "]");
|
||||
}
|
||||
|
||||
if ( ! MethodHandles.isWrapperInstance(sam) ) {
|
||||
throw new IllegalArgumentException("isWrapperInstance returned false for SAM object: [" + sam + "]");
|
||||
}
|
||||
|
||||
return MethodHandles.convertArguments(
|
||||
MethodHandles.lookup().findVirtual(SAMCaller.class, "callSAM", MethodType.methodType(Object.class, Object[].class))
|
||||
.bindTo(new SAMCaller(sam))
|
||||
.asCollector(Object[].class, targetMH.type().parameterCount()),
|
||||
targetMH.type());
|
||||
|
||||
*/
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getName() {
|
||||
return "SAM";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getDescription() {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user