RFR: 8284638: store skip buffers in InputStream Object [v2]
Roger Riggs
rriggs at openjdk.java.net
Wed Apr 13 14:49:31 UTC 2022
On Tue, 12 Apr 2022 23:13:26 GMT, liach <duke at openjdk.java.net> wrote:
>> XenoAmess has updated the pull request incrementally with one additional commit since the last revision:
>>
>> add MIN_SKIP_BUFFER_SIZE
>
> 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));
-------------
PR: https://git.openjdk.java.net/jdk/pull/5872
More information about the core-libs-dev
mailing list