RFR: 4926314: Optimize Reader.read(CharBuffer) [v5]
Philippe Marschall
github.com+471021+marschall at openjdk.java.net
Tue Feb 9 15:31:09 UTC 2021
On Fri, 5 Feb 2021 22:08:17 GMT, Brian Burkhalter <bpb at openjdk.org> wrote:
>> Philippe Marschall has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Limit amount read to avoid BufferOverflowException
>>
>> - limit the amount read
>> - add tests
>
> src/java.base/share/classes/java/io/Reader.java line 194:
>
>> 192: nread = this.read(cbuf, off, len);
>> 193: if (nread > 0)
>> 194: target.position(target.position() + nread);
>
> As `target` is mutable, I think you would do better to change lines 189-194 to something like:
> char cbuf[] = target.array();
> int pos = target.position();
> int rem = target.limit() - pos;
> if (rem <= 0)
> return -1;
> int off = target.arrayOffset() + pos;
> nread = this.read(cbuf, off, rem);
> if (nread > 0)
> target.position(pos + nread);
Done
-------------
PR: https://git.openjdk.java.net/jdk/pull/1915
More information about the core-libs-dev
mailing list