On Tue, 19 Aug 2025 14:11:29 GMT, Roger Riggs <rri...@openjdk.org> wrote:

>> 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.

Using `uncheckedNewStringNoRepl` for the performance side effect is confusing, 
especially with the meaningless try-catch and the constant encoding. A 
dedicated API allows us to track this particular usage better.

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

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

Reply via email to