RFR: 8349503: Consolidate multi-byte access into ByteArray
    Per Minborg 
    pminborg at openjdk.org
       
    Thu Feb  6 14:28:11 UTC 2025
    
    
  
On Wed, 5 Feb 2025 23:41:19 GMT, Chen Liang <liach at openjdk.org> wrote:
> `MethodHandles.byteArrayViewVarHandle` exposes checked multi-byte access to byte arrays via VarHandle. This larger access speeds up many operations, yet it cannot be used in early bootstrap, and as a result, people tend to use `Unsafe` which can threaten memory safety of the Java Platform.
> 
> To promote the safe use of multi-byte access, I propose to move the checked implementations from VarHandle to ByteArray to allow earlier use and reduce maintenance costs. In addition, ByteArrayLittleEndian is consolidated, and now the access methods are distinguished by BO (byte order) / BE (big endian) / LE (little endian) suffixes to indicate their access features.
src/java.base/share/classes/jdk/internal/util/ByteArray.java line 57:
> 55:     }
> 56: 
> 57:     public static short getShortBO(byte[] array, int index, boolean big) {
If we have methods `getShortBE` and `getShortLE` then perhaps this method should just be called `getShort`.
src/java.base/share/classes/jdk/internal/util/ByteArray.java line 62:
> 60:     }
> 61: 
> 62:     public static int getIntBO(byte[] array, int index, boolean big) {
I suggest to rename `big` to `bigEndian` to use the same naming conventions as in `Unsafe`.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23478#discussion_r1944819768
PR Review Comment: https://git.openjdk.org/jdk/pull/23478#discussion_r1944817837
    
    
More information about the core-libs-dev
mailing list