On Wed, 13 Apr 2022 14:45:31 GMT, Roger Riggs <rri...@openjdk.org> wrote:

>> src/java.base/share/classes/java/io/InputStream.java line 557:
>> 
>>> 555: 
>>> 556:         while (remaining > 0) {
>>> 557:             nr = read(skipBuffer, 0, (int)Math.min(size, remaining));
>> 
>> I recommend moving `nr` declaration from the beginning of the method to 
>> where it's actually used (here)
>
> The check for `skipBuffer.length < size` makes it appear that the buffer can 
> be re-allocated.
> If it is allocated once then only the `skipBuffer == null` is needed.
> 
> The code may be simpler if the 'size' variable is removed.
> 
>         byte[] skipBuffer = this.skipBuffer;
>         if (skipBuffer == null) {
>             this.skipBuffer = skipBuffer = 
>                 new byte[(remaining < MIN_SKIP_BUFFER_SIZE) ? 
> MIN_SKIP_BUFFER_SIZE : MAX_SKIP_BUFFER_SIZE];
>         }
>         while (remaining > 0) {
>             int nr = read(skipBuffer, 0, (int)Math.min(skipBuffer.length, 
> remaining));

It indeed is reallocated when the existing one is not large enough.

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

PR: https://git.openjdk.java.net/jdk/pull/5872

Reply via email to