Unnecessary using intermediate ByteArrayInputStream to copy from given byte 
array to OutputStream in FlateFilter::decode
------------------------------------------------------------------------------------------------------------------------

                 Key: PDFBOX-1006
                 URL: https://issues.apache.org/jira/browse/PDFBOX-1006
             Project: PDFBox
          Issue Type: Improvement
    Affects Versions: 1.5.0
            Reporter: Sergey Vladimirov
            Priority: Trivial


It is not required to use intermediate ByteArrayInputStream to copy from given 
byte array to OutputStream. When we have byte[], it's okay just to call 
write(byte[]) method of OutputStream to write all data at once.

AS IS:

                    // Copy data to ByteArrayInputStream for reading
                    bais = new ByteArrayInputStream(baos.toByteArray());
                    baos.close();
                    baos = null;

                    byte[] decodedData = decodePredictor(predictor, colors, 
bitsPerPixel, columns, bais);
                    bais.close();
                    bais = new ByteArrayInputStream(decodedData);

                    // write decoded data to result
                    while ((amountRead = bais.read(buffer)) != -1)
                    {
                        result.write(buffer, 0, amountRead);
                    }
                    bais.close();
                    bais = null;


TO BE:

                    // Copy data to ByteArrayInputStream for reading
                    bais = new ByteArrayInputStream(baos.toByteArray());
                    baos.close();
                    baos = null;

                    byte[] decodedData = decodePredictor(predictor, colors, 
bitsPerPixel, columns, bais);
                    bais.close();
                    bais = null;

                    result.write(decodedData);


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to