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