On Thu, 6 Feb 2025 14:30:30 GMT, Per Minborg <pminb...@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.desktop/share/classes/javax/imageio/stream/ImageInputStreamImpl.java 
> line 245:
> 
>> 243:             throw new EOFException();
>> 244:         }
>> 245:         return (byteOrder == ByteOrder.BIG_ENDIAN)
> 
> This could just be `ByteArray.getShortBO(byteBuff, 0, byteOrder == 
> ByteOrder.BIG_ENDIAN)`. Same for the others.

That would look cleaner.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23478#discussion_r1955287769

Reply via email to