On Wed, 29 Nov 2023 05:48:58 GMT, Vladimir Sitnikov <[email protected]>
wrote:
>> Markus KARG has updated the pull request incrementally with one additional
>> commit since the last revision:
>>
>> Alternative C + Arrays.copyOfRange()
>
> src/java.base/share/classes/java/io/BufferedInputStream.java line 612:
>
>> 610: if (avail > 0) {
>> 611: // Prevent poisoning and leaking of buf
>> 612: byte[] buffer = Arrays.copyOfRange(getBufIfOpen(), pos,
>> count);
>
> @mkarg , could you please clarify why you added `Arrays.copyOfRange` here?
> It seems to be an excessive copy that doesn't help much.
>
> `buf` is `protected` in `BufferedInputStream`, so if someone really wants to
> get hold of the actual buffer, they can subclass `BufferedInputStream` and
> expose the buffer directly.
> What do you think of removing `copyOfRange`?
Buffer copy was not there before, and defensive copy was never present in
`ByteArrayInputStream` as well:
https://github.com/openjdk/jdk/blob/9a6ca233c7e91ffa2ce9451568b3be88ccd04504/src/java.base/share/classes/java/io/ByteArrayInputStream.java#L213
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/10525#discussion_r1408780382