[
https://issues.apache.org/jira/browse/PDFBOX-5579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17703920#comment-17703920
]
Andreas Lehmkühler commented on PDFBOX-5579:
--------------------------------------------
See my comment from 15/Jun/20, unfortunately it links to PDFBOX-1778 which
contains a lot more of text. :-o
I'm pretty sure that our tests, see "org.apache.pdfbox.cos.TestCOSFloat", cover
the described issue, so that it should be easy to double check your changes
from that point of view.
I just wanted to share my learnings that sometimes the obvious things aren't
that obvious and the devils is in the details ;-)
> Change COSFloat.value to primitive type, do not use BigDecimal if not
> necessary
> -------------------------------------------------------------------------------
>
> Key: PDFBOX-5579
> URL: https://issues.apache.org/jira/browse/PDFBOX-5579
> Project: PDFBox
> Issue Type: Improvement
> Affects Versions: 3.0.0 PDFBox
> Reporter: Axel Howind
> Priority: Minor
> Attachments:
> change_value_to_final_float_(primitive)_and_optimize_string_formatting.patch
>
>
> Using the primitive type here uses both less memory and also reduces overhead
> because less boxing/unboxing needs to be done.
> I changed value from `private Float value` to `private final float`.
> I also changed the formatting code in two small details:
> # using BigDecimal is really just necessary, if the value is formatted to
> scientific notation. Since Float.toString() is called anyway, we can check
> for presence of an exponent ('E') and if none is found, return the already
> created string.
> # I removed the trimZeroes() method and let BigDecimal handle this so that
> the zeroes are removed before converting to a string.
> I left valueAsString to be computed lazily when the string representation is
> not already known in the constructor call. It would also be possible to make
> valueAsString final, but then it might be computed unnecessarily, if
> formatString() is never called on the instance.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]