On Tue, 19 Aug 2025 06:00:16 GMT, Volkan Yazici <vyaz...@openjdk.org> wrote:

>> Refactor uses of JLAuncheckedNewStringNoRepl(byte[], ISO_8859_1) adding 
>> JLA.uncheckedNewStringWithLatin1Bytes(byte[]).
>> There is no decoding needed, and no exceptions expected or thrown when 
>> creating the string from the supplied latin1 bytes. 
>> If COMPACT_STRINGS is false, the bytes are inflated to UTF16.
>
> src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java line 330:
> 
>> 328:      * @return the newly created string
>> 329:      */
>> 330:     String uncheckedNewStringWithLatin1Bytes(byte[] bytes);
> 
> @RogerRiggs, we introduce a new `JLA::uncheckedNewStringNoRepl` 
> specialization that
>  doesn't throw `CCE` and fix the charset to Latin-1. _"The only reason"_ we 
> do this is to save the call-site from catching `CCE`, am I right?

The common case is that the caller already has created a latin1 string, and it 
avoids the overhead of re-dispatching on the Charset and adding decoding 
overhead. 
The rationale for adding the package busting access is to improve performance, 
both in avoiding an unnecessary allocation and compute cycles.  The callers in 
each of these cases have been tuned for high performance.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26831#discussion_r2285407351

Reply via email to