Author: tilman
Date: Mon Sep  8 11:28:18 2025
New Revision: 1928288

Log:
PDFBOX-5660: optimize, as suggested by Valery Bokov; closes #248

Modified:
   
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationInk.java
   
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFDictionary.java
   
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFTemplate.java

Modified: 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationInk.java
==============================================================================
--- 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationInk.java
        Mon Sep  8 11:28:13 2025        (r1928287)
+++ 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationInk.java
        Mon Sep  8 11:28:18 2025        (r1928288)
@@ -143,7 +143,7 @@ public class FDFAnnotationInk extends FD
         COSArray array = (COSArray) annot.getDictionaryObject(COSName.INKLIST);
         if (array != null)
         {
-            List<float[]> retval = new ArrayList<float[]>();
+            List<float[]> retval = new ArrayList<float[]>(array.size());
             for (COSBase entry : array)
             {
                 retval.add(((COSArray) entry).toFloatArray());

Modified: 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFDictionary.java
==============================================================================
--- 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFDictionary.java
   Mon Sep  8 11:28:13 2025        (r1928287)
+++ 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFDictionary.java
   Mon Sep  8 11:28:18 2025        (r1928288)
@@ -334,10 +334,10 @@ public class FDFDictionary implements CO
     public List<FDFField> getFields()
     {
         List<FDFField> retval = null;
-        COSArray fieldArray = (COSArray) 
fdf.getDictionaryObject(COSName.FIELDS);
+        COSArray fieldArray = fdf.getCOSArray(COSName.FIELDS);
         if (fieldArray != null)
         {
-            List<FDFField> fields = new ArrayList<FDFField>();
+            List<FDFField> fields = new ArrayList<FDFField>(fieldArray.size());
             for (int i = 0; i < fieldArray.size(); i++)
             {
                 fields.add(new FDFField((COSDictionary) 
fieldArray.getObject(i)));
@@ -385,10 +385,10 @@ public class FDFDictionary implements CO
     public List<FDFPage> getPages()
     {
         List<FDFPage> retval = null;
-        COSArray pageArray = (COSArray) fdf.getDictionaryObject(COSName.PAGES);
+        COSArray pageArray = fdf.getCOSArray(COSName.PAGES);
         if (pageArray != null)
         {
-            List<FDFPage> pages = new ArrayList<FDFPage>();
+            List<FDFPage> pages = new ArrayList<FDFPage>(pageArray.size());
             for (int i = 0; i < pageArray.size(); i++)
             {
                 pages.add(new FDFPage((COSDictionary) pageArray.get(i)));
@@ -446,10 +446,10 @@ public class FDFDictionary implements CO
     public List<FDFAnnotation> getAnnotations() throws IOException
     {
         List<FDFAnnotation> retval = null;
-        COSArray annotArray = (COSArray) 
fdf.getDictionaryObject(COSName.ANNOTS);
+        COSArray annotArray = fdf.getCOSArray(COSName.ANNOTS);
         if (annotArray != null)
         {
-            List<FDFAnnotation> annots = new ArrayList<FDFAnnotation>();
+            List<FDFAnnotation> annots = new 
ArrayList<FDFAnnotation>(annotArray.size());
             for (int i = 0; i < annotArray.size(); i++)
             {
                 annots.add(FDFAnnotation.create((COSDictionary) 
annotArray.getObject(i)));
@@ -521,10 +521,10 @@ public class FDFDictionary implements CO
     public List<PDFileSpecification> getEmbeddedFDFs() throws IOException
     {
         List<PDFileSpecification> retval = null;
-        COSArray embeddedArray = (COSArray) 
fdf.getDictionaryObject(COSName.EMBEDDED_FDFS);
+        COSArray embeddedArray = fdf.getCOSArray(COSName.EMBEDDED_FDFS);
         if (embeddedArray != null)
         {
-            List<PDFileSpecification> embedded = new 
ArrayList<PDFileSpecification>();
+            List<PDFileSpecification> embedded = new 
ArrayList<PDFileSpecification>(embeddedArray.size());
             for (int i = 0; i < embeddedArray.size(); i++)
             {
                 
embedded.add(PDFileSpecification.createFS(embeddedArray.get(i)));

Modified: 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFTemplate.java
==============================================================================
--- 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFTemplate.java
     Mon Sep  8 11:28:13 2025        (r1928287)
+++ 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFTemplate.java
     Mon Sep  8 11:28:18 2025        (r1928288)
@@ -97,10 +97,10 @@ public class FDFTemplate implements COSO
     public List<FDFField> getFields()
     {
         List<FDFField> retval = null;
-        COSArray array = (COSArray) 
template.getDictionaryObject(COSName.FIELDS);
+        COSArray array = template.getCOSArray(COSName.FIELDS);
         if (array != null)
         {
-            List<FDFField> fields = new ArrayList<FDFField>();
+            List<FDFField> fields = new ArrayList<FDFField>(array.size());
             for (int i = 0; i < array.size(); i++)
             {
                 fields.add(new FDFField((COSDictionary) array.getObject(i)));

Reply via email to