8154556: Use java.nio.ByteOrder instead of boolean value
Reviewed-by: alanb
This commit is contained in:
parent
727e63cad7
commit
1af2806677
jdk
src/java.base/share/classes/java/lang/invoke
test/java/lang/invoke/VarHandles
VarHandleTestAccessBoolean.javaVarHandleTestAccessByte.javaVarHandleTestAccessChar.javaVarHandleTestAccessDouble.javaVarHandleTestAccessFloat.javaVarHandleTestAccessInt.javaVarHandleTestAccessLong.javaVarHandleTestAccessShort.javaVarHandleTestAccessString.javaVarHandleTestByteArrayAsChar.javaVarHandleTestByteArrayAsDouble.javaVarHandleTestByteArrayAsFloat.javaVarHandleTestByteArrayAsInt.javaVarHandleTestByteArrayAsLong.javaVarHandleTestByteArrayAsShort.javaX-VarHandleTestByteArrayView.java.template
@ -25,34 +25,38 @@
|
||||
|
||||
package java.lang.invoke;
|
||||
|
||||
import java.lang.reflect.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.BitSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
import java.security.AccessController;
|
||||
import java.security.PrivilegedAction;
|
||||
|
||||
import jdk.internal.org.objectweb.asm.ClassWriter;
|
||||
import jdk.internal.org.objectweb.asm.Opcodes;
|
||||
import jdk.internal.reflect.CallerSensitive;
|
||||
import jdk.internal.reflect.Reflection;
|
||||
import sun.invoke.util.ValueConversions;
|
||||
import sun.invoke.util.VerifyAccess;
|
||||
import sun.invoke.util.Wrapper;
|
||||
import jdk.internal.reflect.CallerSensitive;
|
||||
import jdk.internal.reflect.Reflection;
|
||||
import sun.reflect.misc.ReflectUtil;
|
||||
import sun.security.util.SecurityConstants;
|
||||
import java.lang.invoke.LambdaForm.BasicType;
|
||||
|
||||
import static java.lang.invoke.MethodHandleImpl.Intrinsic;
|
||||
import static java.lang.invoke.MethodHandleNatives.Constants.*;
|
||||
import java.lang.invoke.LambdaForm.BasicType;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Member;
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.lang.reflect.ReflectPermission;
|
||||
import java.nio.ByteOrder;
|
||||
import java.security.AccessController;
|
||||
import java.security.PrivilegedAction;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.BitSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import jdk.internal.org.objectweb.asm.ClassWriter;
|
||||
import jdk.internal.org.objectweb.asm.Opcodes;
|
||||
|
||||
import static java.lang.invoke.MethodHandleImpl.Intrinsic;
|
||||
import static java.lang.invoke.MethodHandleNatives.Constants.*;
|
||||
import static java.lang.invoke.MethodHandleStatics.newIllegalArgumentException;
|
||||
import static java.lang.invoke.MethodType.methodType;
|
||||
|
||||
@ -2337,13 +2341,12 @@ return mh1;
|
||||
*
|
||||
* @param viewArrayClass the view array class, with a component type of
|
||||
* type {@code T}
|
||||
* @param bigEndian true if the endianness of the view array elements, as
|
||||
* stored in the underlying {@code byte} array, is big endian, otherwise
|
||||
* little endian
|
||||
* @param byteOrder the endianness of the view array elements, as
|
||||
* stored in the underlying {@code byte} array
|
||||
* @return a VarHandle giving access to elements of a {@code byte[]} array
|
||||
* viewed as if elements corresponding to the components type of the view
|
||||
* array class
|
||||
* @throws NullPointerException if viewArrayClass is null
|
||||
* @throws NullPointerException if viewArrayClass or byteOrder is null
|
||||
* @throws IllegalArgumentException if viewArrayClass is not an array type
|
||||
* @throws UnsupportedOperationException if the component type of
|
||||
* viewArrayClass is not supported as a variable type
|
||||
@ -2351,8 +2354,10 @@ return mh1;
|
||||
*/
|
||||
public static
|
||||
VarHandle byteArrayViewVarHandle(Class<?> viewArrayClass,
|
||||
boolean bigEndian) throws IllegalArgumentException {
|
||||
return VarHandles.byteArrayViewHandle(viewArrayClass, bigEndian);
|
||||
ByteOrder byteOrder) throws IllegalArgumentException {
|
||||
Objects.requireNonNull(byteOrder);
|
||||
return VarHandles.byteArrayViewHandle(viewArrayClass,
|
||||
byteOrder == ByteOrder.BIG_ENDIAN);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2422,14 +2427,13 @@ return mh1;
|
||||
*
|
||||
* @param viewArrayClass the view array class, with a component type of
|
||||
* type {@code T}
|
||||
* @param bigEndian true if the endianness of the view array elements, as
|
||||
* stored in the underlying {@code ByteBuffer}, is big endian, otherwise
|
||||
* little endian (Note this overrides the endianness of a
|
||||
* {@code ByteBuffer})
|
||||
* @param byteOrder the endianness of the view array elements, as
|
||||
* stored in the underlying {@code ByteBuffer} (Note this overrides the
|
||||
* endianness of a {@code ByteBuffer})
|
||||
* @return a VarHandle giving access to elements of a {@code ByteBuffer}
|
||||
* viewed as if elements corresponding to the components type of the view
|
||||
* array class
|
||||
* @throws NullPointerException if viewArrayClass is null
|
||||
* @throws NullPointerException if viewArrayClass or byteOrder is null
|
||||
* @throws IllegalArgumentException if viewArrayClass is not an array type
|
||||
* @throws UnsupportedOperationException if the component type of
|
||||
* viewArrayClass is not supported as a variable type
|
||||
@ -2437,8 +2441,10 @@ return mh1;
|
||||
*/
|
||||
public static
|
||||
VarHandle byteBufferViewVarHandle(Class<?> viewArrayClass,
|
||||
boolean bigEndian) throws IllegalArgumentException {
|
||||
return VarHandles.makeByteBufferViewHandle(viewArrayClass, bigEndian);
|
||||
ByteOrder byteOrder) throws IllegalArgumentException {
|
||||
Objects.requireNonNull(byteOrder);
|
||||
return VarHandles.makeByteBufferViewHandle(viewArrayClass,
|
||||
byteOrder == ByteOrder.BIG_ENDIAN);
|
||||
}
|
||||
|
||||
|
||||
|
@ -106,7 +106,6 @@ public class VarHandleTestAccessBoolean extends VarHandleBaseTest {
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET));
|
||||
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD));
|
||||
|
@ -106,7 +106,6 @@ public class VarHandleTestAccessByte extends VarHandleBaseTest {
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET));
|
||||
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD));
|
||||
|
@ -106,7 +106,6 @@ public class VarHandleTestAccessChar extends VarHandleBaseTest {
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET));
|
||||
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD));
|
||||
|
@ -106,7 +106,6 @@ public class VarHandleTestAccessDouble extends VarHandleBaseTest {
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET));
|
||||
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD));
|
||||
|
@ -106,7 +106,6 @@ public class VarHandleTestAccessFloat extends VarHandleBaseTest {
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET));
|
||||
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD));
|
||||
|
@ -106,7 +106,6 @@ public class VarHandleTestAccessInt extends VarHandleBaseTest {
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET));
|
||||
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD));
|
||||
|
@ -106,7 +106,6 @@ public class VarHandleTestAccessLong extends VarHandleBaseTest {
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET));
|
||||
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD));
|
||||
|
@ -106,7 +106,6 @@ public class VarHandleTestAccessShort extends VarHandleBaseTest {
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET));
|
||||
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD));
|
||||
|
@ -106,7 +106,6 @@ public class VarHandleTestAccessString extends VarHandleBaseTest {
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET));
|
||||
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD));
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8154556
|
||||
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 VarHandleTestByteArrayAsChar
|
||||
* @run testng/othervm -Diters=20000 VarHandleTestByteArrayAsChar
|
||||
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation VarHandleTestByteArrayAsChar
|
||||
@ -57,15 +58,16 @@ public class VarHandleTestByteArrayAsChar extends VarHandleBaseByteArrayTest {
|
||||
// Combinations of VarHandle byte[] or ByteBuffer
|
||||
vhss = new ArrayList<>();
|
||||
for (MemoryMode endianess : Arrays.asList(MemoryMode.BIG_ENDIAN, MemoryMode.LITTLE_ENDIAN)) {
|
||||
|
||||
ByteOrder bo = endianess == MemoryMode.BIG_ENDIAN
|
||||
? ByteOrder.BIG_ENDIAN : ByteOrder.LITTLE_ENDIAN;
|
||||
VarHandleSource aeh = new VarHandleSource(
|
||||
MethodHandles.byteArrayViewVarHandle(char[].class,
|
||||
endianess == MemoryMode.BIG_ENDIAN),
|
||||
MethodHandles.byteArrayViewVarHandle(char[].class, bo),
|
||||
endianess, MemoryMode.READ_WRITE);
|
||||
vhss.add(aeh);
|
||||
|
||||
VarHandleSource bbh = new VarHandleSource(
|
||||
MethodHandles.byteBufferViewVarHandle(char[].class,
|
||||
endianess == MemoryMode.BIG_ENDIAN),
|
||||
MethodHandles.byteBufferViewVarHandle(char[].class, bo),
|
||||
endianess, MemoryMode.READ_WRITE);
|
||||
vhss.add(bbh);
|
||||
}
|
||||
@ -93,7 +95,6 @@ public class VarHandleTestByteArrayAsChar extends VarHandleBaseByteArrayTest {
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET));
|
||||
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD));
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8154556
|
||||
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 VarHandleTestByteArrayAsDouble
|
||||
* @run testng/othervm -Diters=20000 VarHandleTestByteArrayAsDouble
|
||||
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation VarHandleTestByteArrayAsDouble
|
||||
@ -57,15 +58,16 @@ public class VarHandleTestByteArrayAsDouble extends VarHandleBaseByteArrayTest {
|
||||
// Combinations of VarHandle byte[] or ByteBuffer
|
||||
vhss = new ArrayList<>();
|
||||
for (MemoryMode endianess : Arrays.asList(MemoryMode.BIG_ENDIAN, MemoryMode.LITTLE_ENDIAN)) {
|
||||
|
||||
ByteOrder bo = endianess == MemoryMode.BIG_ENDIAN
|
||||
? ByteOrder.BIG_ENDIAN : ByteOrder.LITTLE_ENDIAN;
|
||||
VarHandleSource aeh = new VarHandleSource(
|
||||
MethodHandles.byteArrayViewVarHandle(double[].class,
|
||||
endianess == MemoryMode.BIG_ENDIAN),
|
||||
MethodHandles.byteArrayViewVarHandle(double[].class, bo),
|
||||
endianess, MemoryMode.READ_WRITE);
|
||||
vhss.add(aeh);
|
||||
|
||||
VarHandleSource bbh = new VarHandleSource(
|
||||
MethodHandles.byteBufferViewVarHandle(double[].class,
|
||||
endianess == MemoryMode.BIG_ENDIAN),
|
||||
MethodHandles.byteBufferViewVarHandle(double[].class, bo),
|
||||
endianess, MemoryMode.READ_WRITE);
|
||||
vhss.add(bbh);
|
||||
}
|
||||
@ -93,7 +95,6 @@ public class VarHandleTestByteArrayAsDouble extends VarHandleBaseByteArrayTest {
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET));
|
||||
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD));
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8154556
|
||||
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 VarHandleTestByteArrayAsFloat
|
||||
* @run testng/othervm -Diters=20000 VarHandleTestByteArrayAsFloat
|
||||
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation VarHandleTestByteArrayAsFloat
|
||||
@ -57,15 +58,16 @@ public class VarHandleTestByteArrayAsFloat extends VarHandleBaseByteArrayTest {
|
||||
// Combinations of VarHandle byte[] or ByteBuffer
|
||||
vhss = new ArrayList<>();
|
||||
for (MemoryMode endianess : Arrays.asList(MemoryMode.BIG_ENDIAN, MemoryMode.LITTLE_ENDIAN)) {
|
||||
|
||||
ByteOrder bo = endianess == MemoryMode.BIG_ENDIAN
|
||||
? ByteOrder.BIG_ENDIAN : ByteOrder.LITTLE_ENDIAN;
|
||||
VarHandleSource aeh = new VarHandleSource(
|
||||
MethodHandles.byteArrayViewVarHandle(float[].class,
|
||||
endianess == MemoryMode.BIG_ENDIAN),
|
||||
MethodHandles.byteArrayViewVarHandle(float[].class, bo),
|
||||
endianess, MemoryMode.READ_WRITE);
|
||||
vhss.add(aeh);
|
||||
|
||||
VarHandleSource bbh = new VarHandleSource(
|
||||
MethodHandles.byteBufferViewVarHandle(float[].class,
|
||||
endianess == MemoryMode.BIG_ENDIAN),
|
||||
MethodHandles.byteBufferViewVarHandle(float[].class, bo),
|
||||
endianess, MemoryMode.READ_WRITE);
|
||||
vhss.add(bbh);
|
||||
}
|
||||
@ -93,7 +95,6 @@ public class VarHandleTestByteArrayAsFloat extends VarHandleBaseByteArrayTest {
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET));
|
||||
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD));
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8154556
|
||||
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 VarHandleTestByteArrayAsInt
|
||||
* @run testng/othervm -Diters=20000 VarHandleTestByteArrayAsInt
|
||||
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation VarHandleTestByteArrayAsInt
|
||||
@ -37,10 +38,10 @@ import java.nio.ByteBuffer;
|
||||
import java.nio.ByteOrder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.EnumSet;
|
||||
import java.util.List;
|
||||
|
||||
import static org.testng.Assert.*;
|
||||
import static org.testng.Assert.assertEquals;
|
||||
import static org.testng.Assert.assertTrue;
|
||||
|
||||
public class VarHandleTestByteArrayAsInt extends VarHandleBaseByteArrayTest {
|
||||
static final int SIZE = Integer.BYTES;
|
||||
@ -57,15 +58,16 @@ public class VarHandleTestByteArrayAsInt extends VarHandleBaseByteArrayTest {
|
||||
// Combinations of VarHandle byte[] or ByteBuffer
|
||||
vhss = new ArrayList<>();
|
||||
for (MemoryMode endianess : Arrays.asList(MemoryMode.BIG_ENDIAN, MemoryMode.LITTLE_ENDIAN)) {
|
||||
|
||||
ByteOrder bo = endianess == MemoryMode.BIG_ENDIAN
|
||||
? ByteOrder.BIG_ENDIAN : ByteOrder.LITTLE_ENDIAN;
|
||||
VarHandleSource aeh = new VarHandleSource(
|
||||
MethodHandles.byteArrayViewVarHandle(int[].class,
|
||||
endianess == MemoryMode.BIG_ENDIAN),
|
||||
MethodHandles.byteArrayViewVarHandle(int[].class, bo),
|
||||
endianess, MemoryMode.READ_WRITE);
|
||||
vhss.add(aeh);
|
||||
|
||||
VarHandleSource bbh = new VarHandleSource(
|
||||
MethodHandles.byteBufferViewVarHandle(int[].class,
|
||||
endianess == MemoryMode.BIG_ENDIAN),
|
||||
MethodHandles.byteBufferViewVarHandle(int[].class, bo),
|
||||
endianess, MemoryMode.READ_WRITE);
|
||||
vhss.add(bbh);
|
||||
}
|
||||
@ -93,7 +95,6 @@ public class VarHandleTestByteArrayAsInt extends VarHandleBaseByteArrayTest {
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET));
|
||||
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD));
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8154556
|
||||
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 VarHandleTestByteArrayAsLong
|
||||
* @run testng/othervm -Diters=20000 VarHandleTestByteArrayAsLong
|
||||
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation VarHandleTestByteArrayAsLong
|
||||
@ -57,15 +58,16 @@ public class VarHandleTestByteArrayAsLong extends VarHandleBaseByteArrayTest {
|
||||
// Combinations of VarHandle byte[] or ByteBuffer
|
||||
vhss = new ArrayList<>();
|
||||
for (MemoryMode endianess : Arrays.asList(MemoryMode.BIG_ENDIAN, MemoryMode.LITTLE_ENDIAN)) {
|
||||
|
||||
ByteOrder bo = endianess == MemoryMode.BIG_ENDIAN
|
||||
? ByteOrder.BIG_ENDIAN : ByteOrder.LITTLE_ENDIAN;
|
||||
VarHandleSource aeh = new VarHandleSource(
|
||||
MethodHandles.byteArrayViewVarHandle(long[].class,
|
||||
endianess == MemoryMode.BIG_ENDIAN),
|
||||
MethodHandles.byteArrayViewVarHandle(long[].class, bo),
|
||||
endianess, MemoryMode.READ_WRITE);
|
||||
vhss.add(aeh);
|
||||
|
||||
VarHandleSource bbh = new VarHandleSource(
|
||||
MethodHandles.byteBufferViewVarHandle(long[].class,
|
||||
endianess == MemoryMode.BIG_ENDIAN),
|
||||
MethodHandles.byteBufferViewVarHandle(long[].class, bo),
|
||||
endianess, MemoryMode.READ_WRITE);
|
||||
vhss.add(bbh);
|
||||
}
|
||||
@ -93,7 +95,6 @@ public class VarHandleTestByteArrayAsLong extends VarHandleBaseByteArrayTest {
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET));
|
||||
|
||||
assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD));
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8154556
|
||||
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 VarHandleTestByteArrayAsShort
|
||||
* @run testng/othervm -Diters=20000 VarHandleTestByteArrayAsShort
|
||||
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation VarHandleTestByteArrayAsShort
|
||||
@ -57,15 +58,16 @@ public class VarHandleTestByteArrayAsShort extends VarHandleBaseByteArrayTest {
|
||||
// Combinations of VarHandle byte[] or ByteBuffer
|
||||
vhss = new ArrayList<>();
|
||||
for (MemoryMode endianess : Arrays.asList(MemoryMode.BIG_ENDIAN, MemoryMode.LITTLE_ENDIAN)) {
|
||||
|
||||
ByteOrder bo = endianess == MemoryMode.BIG_ENDIAN
|
||||
? ByteOrder.BIG_ENDIAN : ByteOrder.LITTLE_ENDIAN;
|
||||
VarHandleSource aeh = new VarHandleSource(
|
||||
MethodHandles.byteArrayViewVarHandle(short[].class,
|
||||
endianess == MemoryMode.BIG_ENDIAN),
|
||||
MethodHandles.byteArrayViewVarHandle(short[].class, bo),
|
||||
endianess, MemoryMode.READ_WRITE);
|
||||
vhss.add(aeh);
|
||||
|
||||
VarHandleSource bbh = new VarHandleSource(
|
||||
MethodHandles.byteBufferViewVarHandle(short[].class,
|
||||
endianess == MemoryMode.BIG_ENDIAN),
|
||||
MethodHandles.byteBufferViewVarHandle(short[].class, bo),
|
||||
endianess, MemoryMode.READ_WRITE);
|
||||
vhss.add(bbh);
|
||||
}
|
||||
@ -93,7 +95,6 @@ public class VarHandleTestByteArrayAsShort extends VarHandleBaseByteArrayTest {
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET));
|
||||
|
||||
assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD));
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8154556
|
||||
* @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 VarHandleTestByteArrayAs$Type$
|
||||
* @run testng/othervm -Diters=20000 VarHandleTestByteArrayAs$Type$
|
||||
* @run testng/othervm -Diters=20000 -XX:-TieredCompilation VarHandleTestByteArrayAs$Type$
|
||||
@ -57,15 +58,16 @@ public class VarHandleTestByteArrayAs$Type$ extends VarHandleBaseByteArrayTest {
|
||||
// Combinations of VarHandle byte[] or ByteBuffer
|
||||
vhss = new ArrayList<>();
|
||||
for (MemoryMode endianess : Arrays.asList(MemoryMode.BIG_ENDIAN, MemoryMode.LITTLE_ENDIAN)) {
|
||||
|
||||
ByteOrder bo = endianess == MemoryMode.BIG_ENDIAN
|
||||
? ByteOrder.BIG_ENDIAN : ByteOrder.LITTLE_ENDIAN;
|
||||
VarHandleSource aeh = new VarHandleSource(
|
||||
MethodHandles.byteArrayViewVarHandle($type$[].class,
|
||||
endianess == MemoryMode.BIG_ENDIAN),
|
||||
MethodHandles.byteArrayViewVarHandle($type$[].class, bo),
|
||||
endianess, MemoryMode.READ_WRITE);
|
||||
vhss.add(aeh);
|
||||
|
||||
VarHandleSource bbh = new VarHandleSource(
|
||||
MethodHandles.byteBufferViewVarHandle($type$[].class,
|
||||
endianess == MemoryMode.BIG_ENDIAN),
|
||||
MethodHandles.byteBufferViewVarHandle($type$[].class, bo),
|
||||
endianess, MemoryMode.READ_WRITE);
|
||||
vhss.add(bbh);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user