[
https://issues.apache.org/jira/browse/PDFBOX-5451?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andreas Lehmkühler updated PDFBOX-5451:
---------------------------------------
Description:
-When creating a COSString the given byte array is cloned. As in most cases the
array is just an intermediate object we should remove that to reduce the memory
footprint.-
-Furthermore the {{getBytes}} returns the internal byte array so that I don't
see any reason not to use the given byte array itself instead of cloning it-
My first idea was to remove the clone when setting the value of a COSString to
reduce the memory footprint. After some discussion we came to the conclusion
that it would make sense to do so if COSStrings were immutable. But to make
COSStrings immutable some refactoring is needed and I won't do that for 3.0.0.
Saying that, I've reverted my first change and and added a clone in getBytes so
that the underlying byte array isn't exposed at all.
was:
When creating a COSString the given byte array is cloned. As in most cases the
array is just an intermediate object we should remove that to reduce the memory
footprint.
Furthermore the {{getBytes}} returns the internal byte array so that I don't
see any reason not to use the given byte array itself instead of cloning it
> Avoid exposing underlying byte array
> ------------------------------------
>
> Key: PDFBOX-5451
> URL: https://issues.apache.org/jira/browse/PDFBOX-5451
> Project: PDFBox
> Issue Type: Improvement
> Components: Parsing
> Affects Versions: 3.0.0 PDFBox
> Reporter: Andreas Lehmkühler
> Assignee: Andreas Lehmkühler
> Priority: Major
> Fix For: 3.0.0 PDFBox
>
>
> -When creating a COSString the given byte array is cloned. As in most cases
> the array is just an intermediate object we should remove that to reduce the
> memory footprint.-
> -Furthermore the {{getBytes}} returns the internal byte array so that I don't
> see any reason not to use the given byte array itself instead of cloning it-
> My first idea was to remove the clone when setting the value of a COSString
> to reduce the memory footprint. After some discussion we came to the
> conclusion that it would make sense to do so if COSStrings were immutable.
> But to make COSStrings immutable some refactoring is needed and I won't do
> that for 3.0.0.
> Saying that, I've reverted my first change and and added a clone in getBytes
> so that the underlying byte array isn't exposed at all.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]