[
https://issues.apache.org/jira/browse/PDFBOX-4895?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17160431#comment-17160431
]
Alfred commented on PDFBOX-4895:
--------------------------------
Whatever you decide, we should add a test to TestCOSNumber.
{code:java}
public void testBigNumbers()
{
try
{
//see https://issues.apache.org/jira/browse/PDFBOX-4889
//and https://issues.apache.org/jira/browse/PDFBOX-4895
assertEquals(new COSFloat(18446744073307448448f),
COSNumber.get("18446744073307448448"));
assertEquals(new COSFloat(-18446744073307448448f),
COSNumber.get("-18446744073307448448"));
}
catch (IOException e)
{
fail("Failed to convert a number " + e.getMessage());
}
}
{code}
or
{code:java}
public void testBigNumbers()
{
try
{
//see https://issues.apache.org/jira/browse/PDFBOX-4889
//and https://issues.apache.org/jira/browse/PDFBOX-4895
assertEquals(COSInteger.get(Long.MAX_VALUE),
COSNumber.get("18446744073307448448"));
assertEquals(COSInteger.get(-Long.MAX_VALUE),
COSNumber.get("-18446744073307448448"));
}
catch (IOException e)
{
fail("Failed to convert a number " + e.getMessage());
}
}
{code}
> Faster COSNumber
> ----------------
>
> Key: PDFBOX-4895
> URL: https://issues.apache.org/jira/browse/PDFBOX-4895
> Project: PDFBox
> Issue Type: Improvement
> Affects Versions: 2.0.20, 3.0.0 PDFBox
> Reporter: Alfred
> Assignee: Tilman Hausherr
> Priority: Trivial
> Labels: Optimization
> Fix For: 2.0.21, 3.0.0 PDFBox
>
> Attachments: PDFBOX-4895-b.patch, PDFBOX-4895.patch
>
>
> A small improvement can be made to COSNumber when checking if it's float.
> Current version uses indexOf twice, to check for '.' or 'e'.
> We can do that in one scan.
>
> Each call will scan through the entire string.
> We only have to scan until we find the chars, and stop if found.
>
> I found while profiling the code that the method gets called a lot, so the
> improvement makes a a bit of a difference.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]