[
https://issues.apache.org/jira/browse/PDFBOX-5579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17718441#comment-17718441
]
ASF subversion and git services commented on PDFBOX-5579:
---------------------------------------------------------
Commit 1909551 from [email protected] in branch 'pdfbox/trunk'
[ https://svn.apache.org/r1909551 ]
PDFBOX-5579: replace Float with float, set member variable to final as proposed
by Axel Howind
> 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
> Assignee: Andreas Lehmkühler
> Priority: Minor
> Fix For: 3.0.0 PDFBox
>
> 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]