RFR [8014657] CheckedInputStream.skip allocates temporary buffer on every call
Xueming Shen
xueming.shen at oracle.com
Wed May 15 16:34:10 UTC 2013
public long skip(long n) throws IOException {
- byte[] buf = new byte[512];
+ if (tmpbuf == null) {
+ tmpbuf = new byte[512];
+ }
long total = 0;
while (total < n) {
long len = n - total;
- len = read(buf, 0, len < buf.length ? (int)len : buf.length);
+ len = read(buf, 0, len < tmpbuf.length ? (int)len : tmpbuf.length);
if (len == -1) {
return total;
}
total += len;
}
Shouldn't the first param "buf" to be "tmpbuf" as well at ln#104, otherwise I guess
it will not pass the compiler?
-Sherman
On 05/15/2013 08:40 AM, Ivan Gerasimov wrote:
> Hello!
>
> Please have a chance to review a simple change proposal.
>
> CheckedInputStream.skip() allocates temporary buffer on every call.
> It's suggested to have a temporary buffer that is initialized on the first use and can be reused during subsequent calls to the skip() function.
> Many other input streams already use the same approach.
>
> http://cr.openjdk.java.net/~dmeetry/8014657/webrev.0/ <http://cr.openjdk.java.net/%7Edmeetry/8014657/webrev.0/>
>
> Sincerely,
> Ivan
More information about the core-libs-dev
mailing list