On Wed, 29 Nov 2023 05:48:58 GMT, Vladimir Sitnikov <vsitni...@openjdk.org> 
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

Reply via email to