Hi Brian,
On 12/20/2017 11:30 PM, Brian Burkhalter wrote:
On Dec 20, 2017, at 11:52 AM, Paul Sandoz <paul.san...@oracle.com> wrote:
I was a little lassiaz-faire given that 8K bytes were anyway being allocated
upfront. Peter’s changes look good.
Brian, i would double check the tests to make sure the various code paths are
tested.
http://cr.openjdk.java.net/~bpb/8193832/webrev.03/
The patch is updated to:
* use Peter’s approach to avoid allocating an ArrayList when length <=
DEFAULT_BUFFER_SIZE;
* use the default ArrayList constructor instead of that with a specific initial
capacity;
* update the test to ensure that lengths which require three buffers are
covered.
Thanks,
Brian
This is OK as is, but I see another possible improvement to the logic.
You decide whether it is worth trying to implement it. Currently the
logic reads stream into buffers of DEFAULT_BUFFER_SIZE and adds them to
an ArrayList, except the last buffer which is 1st copied into a shorter
buffer before being appended to the list. This copying is unnecessary.
The copied buffer has the same content, but shorter length. But the
information about the length of final buffer is contained elsewhere too
(for example implicitly in 'total'). So you copuld change the final
"gathering" loop to extract this information for the final buffer and
there would be no redundant copying of final buffer necessary.
What do you think?
Regards, Peter