RFR [8014657] CheckedInputStream.skip allocates temporary buffer on every call
Ivan Gerasimov
ivan.gerasimov at oracle.com
Wed May 15 21:19:39 UTC 2013
Hello Sherman!
On 15.05.2013 20:34, Xueming Shen wrote:
> 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?
>
Of course you're right!
I should have waited for the compilation to finish before posting the
message.
Here's the updated webrev:
http://cr.openjdk.java.net/~dmeetry/8014657/webrev.1/
<http://cr.openjdk.java.net/%7Edmeetry/8014657/webrev.1/>
Thanks,
Ivan
> -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