On Wed, 5 Feb 2025 23:41:19 GMT, Chen Liang <li...@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.

What about dropping "BE" from all big-endian method names?
This would reduces the number of files to review in `java.io` to 0 (admittedly, 
it's a rather mechanical review).
I know this would be less symmetrical, but...

src/java.base/share/classes/jdk/internal/util/ByteArray.java line 53:

> 51: 
> 52:     public static char getCharBO(byte[] array, int index, boolean big) {
> 53:         Preconditions.checkIndex(index, array.length - Character.BYTES + 
> 1, Preconditions.AIOOBE_FORMATTER);

Suggestion:

        Preconditions.checkIndex(index, array.length - (Character.BYTES - 1), 
Preconditions.AIOOBE_FORMATTER);


Similarly for all cases below.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/23478#issuecomment-2639657316
PR Review Comment: https://git.openjdk.org/jdk/pull/23478#discussion_r1944571743

Reply via email to