RFR: 8364317: Explicitly document some assumptions of StringUTF16 [v2]

Volkan Yazici vyazici at openjdk.org
Thu Jul 31 17:46:54 UTC 2025


On Wed, 30 Jul 2025 14:18:49 GMT, Chen Liang <liach at openjdk.org> wrote:

>> In #24773, people were concerned that the layout of a UTF16 byte array and a char array may be incompatible. In fact, they are - they are asserted in a corner in `LibraryCallKit::inline_string_char_access` in `library_call.cpp`.
>> 
>> In addition, another frequent error I see is that contributors have confused the meaning of indices in StringUTF16 - the indices are always in char array indices. I think we should make these explicit to help future maintenance.
>
> Chen Liang has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Add paragraph for endianness and layout

> > @liach, given the relatively big API surface of j.l.StringUTF16, are we certain about this?
> 
> I am. In fact, your update to use `char` made it less correct - there are a few APIs that take LATIN1 byte arrays, for which number of chars is equivalent to number of bytes.

Thanks for taking care of these details Chen, much appreciated. Changes LGTM.

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

Marked as reviewed by vyazici (Committer).

PR Review: https://git.openjdk.org/jdk/pull/26541#pullrequestreview-3076373698


More information about the core-libs-dev mailing list