On Sat, 29 Mar 2025 10:09:25 GMT, Markus KARG <d...@openjdk.org> wrote:

>> This Pull Request proposes an implementation for 
>> [JDK-8343110](https://bugs.openjdk.org/browse/JDK-8343110): Adding the new 
>> method `public void getChars(int srcBegin, int srcEnd, char[] dst, int 
>> dstBegin)` to the `CharSequence` interface, providing a **bulk-read** 
>> facility including a default implementation iterating over `charAt(int)`.
>> 
>> In addition, this Pull Request proposes to replace the implementation of 
>> `Reader.of(CharSequence).read(char[] cbuf, int off, int len)` to invoke 
>> `CharSequence.getChars(next, next + n, cbuf, off)` instead of utilizing 
>> pattern matching for switch. Also, this PR proposes to implement 
>> `CharBuffer.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` as 
>> an alias for `CharBuffer.get(srcBegin, dst, dstBegin, srcEnd - srcBegin)`.
>> 
>> To ensure quality...
>> * ...the method signature and JavaDocs are adapted from 
>> `AbstractStringBuilder.getChars(...)`.
>> * ...this PR relies upon the existing tests for `Reader.of(CharSequence)`, 
>> as these provide sufficient coverage of all changes introduced by this PR.
>
> Markus KARG has updated the pull request incrementally with three additional 
> commits since the last revision:
> 
>  - Applied changes requested by Alan: This sentence doesn't make sense, did 
> something get deleted?
>  - Applied changes requested by Alan: Copies chars from this sequence into 
> the given destination array
>  - Replaced JavaDocs of CharBuffer, as suggested by Alan

src/java.base/share/classes/java/lang/CharSequence.java line 335:

> 333:      * @implSpec
> 334:      * The default implementation invokes {@link #charAt(int index)} in 
> a loop
> 335:      * iterating {@code index} from {@code srcBegin} to {@code srcEnd-1}

We might need to specify the IOOBE behavior - when an IOOBE is thrown, some 
characters may be already transferred (this is important for concurrent char 
sequences)

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

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

Reply via email to