< prev index next >
src/java.base/share/classes/java/lang/invoke/VarHandleByteArrayBase.java
Print this page
rev 17358 : 8182487: Add Unsafe.objectFieldOffset(Class, String)
Reviewed-by: dsimms, twisti, bchristi, mgerdin
@@ -33,36 +33,24 @@
* The base class for generated byte array and byte buffer view
* implementations
*/
abstract class VarHandleByteArrayBase {
// Buffer.address
- static final long BUFFER_ADDRESS;
- // Buffer.limit
- static final long BUFFER_LIMIT;
- // ByteBuffer.hb
- static final long BYTE_BUFFER_HB;
- // ByteBuffer.isReadOnly
- static final long BYTE_BUFFER_IS_READ_ONLY;
-
- static {
- try {
- BUFFER_ADDRESS = UNSAFE.objectFieldOffset(
- Buffer.class.getDeclaredField("address"));
+ static final long BUFFER_ADDRESS
+ = UNSAFE.objectFieldOffset(Buffer.class, "address");
- BUFFER_LIMIT = UNSAFE.objectFieldOffset(
- Buffer.class.getDeclaredField("limit"));
+ // Buffer.limit
+ static final long BUFFER_LIMIT
+ = UNSAFE.objectFieldOffset(Buffer.class, "limit");
- BYTE_BUFFER_HB = UNSAFE.objectFieldOffset(
- ByteBuffer.class.getDeclaredField("hb"));
+ // ByteBuffer.hb
+ static final long BYTE_BUFFER_HB
+ = UNSAFE.objectFieldOffset(ByteBuffer.class, "hb");
- BYTE_BUFFER_IS_READ_ONLY = UNSAFE.objectFieldOffset(
- ByteBuffer.class.getDeclaredField("isReadOnly"));
- }
- catch (ReflectiveOperationException e) {
- throw new Error(e);
- }
- }
+ // ByteBuffer.isReadOnly
+ static final long BYTE_BUFFER_IS_READ_ONLY
+ = UNSAFE.objectFieldOffset(ByteBuffer.class, "isReadOnly");
static final boolean BE = UNSAFE.isBigEndian();
static IllegalStateException newIllegalStateExceptionForMisalignedAccess(int index) {
return new IllegalStateException("Misaligned access at index: " + index);
< prev index next >