You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Sergey Vladimirov (JIRA)" <ji...@apache.org> on 2011/05/12 12:56:47 UTC

[jira] [Updated] (PDFBOX-1006) Unnecessary using intermediate ByteArrayInputStream to copy from given byte array to OutputStream in FlateFilter::decode

     [ https://issues.apache.org/jira/browse/PDFBOX-1006?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sergey Vladimirov updated PDFBOX-1006:
--------------------------------------

    Attachment: FlateFilter.java.patch

patch

> 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
>         Attachments: FlateFilter.java.patch
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> 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