RFR: 8343110: Add getChars(int, int, char[], int) to CharSequence and CharBuffer [v2]

Markus KARG duke at openjdk.org
Sun Mar 23 10:37:49 UTC 2025


On Sun, 23 Mar 2025 04:34:29 GMT, Chen Liang <liach at openjdk.org> wrote:

>> Markus KARG has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Applied changes requested by Chen
>
> src/java.base/share/classes/java/lang/CharSequence.java line 340:
> 
>> 338:     public default void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) {
>> 339:         Objects.checkFromToIndex(srcBegin, srcEnd, length());
>> 340:         Objects.checkFromIndexSize(dstBegin, srcEnd - srcBegin, dst.length);
> 
> We can just do a `checkIndex(dstBegin, dst.length - (srcEnd - srcBegin) + 1)` as we know `srcEnd - srcBegin` is valid.
> 
> Also we should specify an NPE is thrown if `dst` is `null`. (Unforunately `compare` forgot this specification when it was added)

Fixed in a3c2add9c16e4c7331c5a7c2848f27b6c0330a17

> src/java.base/share/classes/java/nio/X-Buffer.java.template line 2356:
> 
>> 2354: #end[streamableType]
>> 2355: 
>> 2356: #if[char]
> 
> Can we merge this with `// -- Other char stuff --` on line 1895?
> 
> On a side note, we can optimize a lot of Appendable operations that transfer from CharSequence on CharBuffer; don't know if you wish to have it in this RFE or another.

Fixed in a3c2add9c16e4c7331c5a7c2848f27b6c0330a17.

Let's finish this PR first. After that I would be happy to author another PR with all the optimizations you tell me. 😃

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

PR Review Comment: https://git.openjdk.org/jdk/pull/21730#discussion_r2009072156
PR Review Comment: https://git.openjdk.org/jdk/pull/21730#discussion_r2009072472


More information about the nio-dev mailing list